比赛 |
防止isaac的小练习day1 |
评测结果 |
AAAAAAAAAA |
题目名称 |
瑞士轮 |
最终得分 |
100 |
用户昵称 |
Mealy |
运行时间 |
2.185 s |
代码语言 |
C++ |
内存使用 |
34.65 MiB |
提交时间 |
2016-11-01 20:47:05 |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int nmax=1000086;
int n,R,Q;
class Poi
{
public:
int id;
int val;
int poi;
Poi()
{
id=0;
val=0;
poi=0;
}
}P[nmax],W[nmax],L[nmax];
void PreDo()
{
scanf("%d%d%d",&n,&R,&Q);
for(int i=1;i<=2*n;i++)
{
scanf("%d",&P[i].poi);
P[i].id=i;
}
for(int i=1;i<=2*n;i++)
{
scanf("%d",&P[i].val);
}
}
bool cmp(Poi a,Poi b)
{
if(a.poi==b.poi)
{
return a.id<b.id;
}
else
{
return a.poi>b.poi;
}
}
void Competition()
{
sort(P+1,P+2*n+1,cmp);
while(R)
{
R--;
int cnt=0;
for(int i=1;i<=2*n;i+=2)
{
cnt++;
if(P[i].val>P[i+1].val)
{
W[cnt]=P[i];
L[cnt]=P[i+1];
}
if(P[i+1].val>P[i].val)
{
W[cnt]=P[i+1];
L[cnt]=P[i];
}
W[cnt].poi++;
}
merge(L+1,L+n+1,W+1,W+1+n,P+1,cmp);
}
printf("%d\n",P[Q].id);
}
int main()
{
freopen("swiss.in","r",stdin);
freopen("swiss.out","w",stdout);
PreDo();
Competition();
return 0;
}