please! help!!!!!

P1309 [NOIP2011 普及组] 瑞士轮

****after correcting ```c #include<bits/stdc++.h> using namespace std; struct wtf{ int how_strong_they_are,number,score; }a[100010]; int main() { int n,r,q; cin>>n>>r>>q; for(int i=1;i<=2*n;i++)cin>>a[i].score; for(int i=1;i<=2*n;i++)cin>>a[i].how_strong_they_are; for(int i=1;i<=2*n;i++)a[i].number=i; for(int k=1;k<=r;k++) { for(int i=1;i<=2*n;i++) { int tmp=i; for(int j=i;j<=2*n;j++)if(a[tmp].score<a[j].score||(a[tmp].score==a[j].score&&a[tmp].number>a[j].number))tmp=j; if(tmp!=i){ wtf p=a[tmp]; a[tmp]=a[i]; a[i]=p; } } // cout<<a[q].number<<endl; for(int i=1;i<=n;i++) { if(a[2*i-1].how_strong_they_are<a[2*i].how_strong_they_are)a[2*i].score++; else a[2*i-1].score++; // printf("%d against %d \n",a[2*n-1].number,a[2*n].number); } } for(int i=1;i<=2*n;i++) { int tmp=i; for(int j=i;j<=2*n;j++)if(a[tmp].score<a[j].score||(a[tmp].score==a[j].score&&a[tmp].number>a[j].number))tmp=j; if(tmp!=i){ wtf p=a[tmp]; a[tmp]=a[i]; a[i]=p; } } cout<<a[q].number<<endl; } ```
by dyzxjzx @ 2019-01-30 21:14:48


****再改了之后 ```c #include<bits/stdc++.h> using namespace std; struct wtf{ int how_strong_they_are,number,score; // bool operator < (const wtf &x)const // { // if(score<x.score||(score==x.score&&number<x.number))return true; // else return false; // } }a[100010]; wtf as[100010],bs[100010]; int n,r,q,i; void MERGE_SORT() { int tot=0,l=1,r=1; while(l<=n&&r<=n){ if(as[l].score>bs[r].score||(as[l].score==bs[r].score&&as[l].number<bs[r].number)) { a[++tot]=as[l]; l++; }else{ a[++tot]=bs[r]; r++; } } while(l<=n)a[++tot]=as[l++]; while(r<=n)a[++tot]=bs[r++]; return ; } int main() { cin>>n>>r>>q; for(i=1;i<=2*n;i++)cin>>a[i].score; for(i=1;i<=2*n;i++)cin>>a[i].how_strong_they_are; for(i=1;i<=2*n;i++)a[i].number=i; for(i=1;i<=2*n;i++) { int tmp=i; for(long long int j=i;j<=2*n;j++) if(a[tmp].score<a[j].score||(a[tmp].score==a[j].score&&a[tmp].number>a[j].number))tmp=j; if(tmp!=i){ wtf p=a[tmp]; a[tmp]=a[i]; a[i]=p; } } // sort(a,a+2*n); for(int k=1;k<=r;k++) { for(i=1;i<=n;i++) { if(a[2*i-1].how_strong_they_are<a[2*i].how_strong_they_are)a[2*i].score++; else a[2*i-1].score++; int a1=0,b1=0; for(int j=1;j<=2*n;j+=2)as[++a1]=a[j]; for(int j=2;j<=2*n;j+=2)bs[++b1]=a[j]; MERGE_SORT(); } } cout<<a[q].number<<endl; } ```
by dyzxjzx @ 2019-01-31 09:17:30


~~鬼畜的变名~~
by 厂长 @ 2019-03-19 15:08:06


|