题解 P1309 【瑞士轮】

Tomone

2018-02-28 00:21:01

Solution

```cpp #include<cstdio> #include<iostream> #include<algorithm> using namespace std; struct mr{ int chu; //分数 int sl; //能力 int id; //号 }a[200001]; int n,r,q; bool cmp(mr x,mr y){ return x.chu==y.chu ? x.id<y.id : x.chu>y.chu; } int main(){ int w; cin>>n>>r>>q; for(int i=1;i<=2*n;++i){ cin>>a[i].chu; a[i].id=i; } for(int i=1;i<=2*n;++i) cin>>a[i].sl; sort(a+1,a+1+2*n,cmp); //这个地方排序一定是2*n 坑死我了、 for(int i=1;i<=r;++i){ //比赛次数 for(int j=1;j<2*n;j+=2){ w=j+1; if(a[j].sl>a[w].sl) a[j].chu++; if(a[j].sl<a[w].sl) a[w].chu++; } sort(a+1,a+1+2*n,cmp); //这个地方排序一定是2*n 坑死我了、 } cout<<a[q].id<<endl;; } ``` 蒟蒻的博客:www.aptx.xin