Submission #718111

#TimeUsernameProblemLanguageResultExecution timeMemory
718111AugustynMed (COCI22_med)C++17
0 / 50
1 ms212 KiB
#include<iostream> #include<algorithm> using namespace std; struct zawodnik { int wynik; long long 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; long pot26[11]; zawodnik *zawodnicy,*orgzaw; 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]; orgzaw=new zawodnik[n]; for(int i=0;i<n;++i) { string imie; cin>>imie; int dlu=imie.length(); for(int j=0;j<dlu;++j) { zawodnicy[i].imie+=pot26[dlu-j-1]*(imie[j]-'a'); } int wyn; for(int j=0;j<5;++j) { cin>>wyn; zawodnicy[i].wynik+=wyn; } orgzaw[i]=zawodnicy[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>orgzaw[i].wynik+500) ++j; else if(zawodnicy[j].wynik==orgzaw[i].wynik+500) { if(zawodnicy[j].imie<orgzaw[i].imie) ++j; else break; } else break; } while(k<n) { if(zawodnicy[k].wynik>orgzaw[i].wynik-500) ++k; else if(zawodnicy[k].wynik==orgzaw[i].wynik-500) { if(zawodnicy[j].imie<orgzaw[i].imie) ++k; else break; } else break; } printf("%d %d\n",j+1,k); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...