Submission #718136

#TimeUsernameProblemLanguageResultExecution timeMemory
718136AugustynMed (COCI22_med)C++17
50 / 50
1 ms340 KiB
#include<iostream> #include<algorithm> using namespace std; struct zawodnik { int wynik; int org; string imie; }; bool comp(zawodnik a,zawodnik b) { if(a.wynik<b.wynik) return 0; else if(b.wynik<a.wynik) return 1; return a.imie<b.imie; } int n; unsigned long long pot26[11]; zawodnik *zawodnicy; int **odp; int main() { pot26[0]=1; for(int i=1;i<=10;++i) pot26[i]=pot26[i-1]*26; ios_base::sync_with_stdio(0); cin>>n; zawodnicy=new zawodnik[n]; odp=new int *[n]; for(int i=0;i<n;++i) { odp[i]=new int[2]; string imie; cin>>zawodnicy[i].imie; int wyn; for(int j=0;j<5;++j) { cin>>wyn; zawodnicy[i].wynik+=wyn; } zawodnicy[i].org=i; } sort(zawodnicy,zawodnicy+n,comp); int j=0,k=0; for(int i=0;i<n;++i) { while(j<n) { if(zawodnicy[j].wynik>zawodnicy[i].wynik+500) ++j; else if(zawodnicy[j].wynik==zawodnicy[i].wynik+500) { if(zawodnicy[j].imie<zawodnicy[i].imie) ++j; else break; } else break; } while(k<n) { if(zawodnicy[k].wynik>zawodnicy[i].wynik-500) ++k; else if(zawodnicy[k].wynik==zawodnicy[i].wynik-500) { if(zawodnicy[k].imie<zawodnicy[i].imie) ++k; else break; } else break; } odp[zawodnicy[i].org][0]=j+1; odp[zawodnicy[i].org][1]=k; } for(int i=0;i<n;++i) cout<<odp[i][0]<<" "<<odp[i][1]<<"\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...