Submission #1225793

#TimeUsernameProblemLanguageResultExecution timeMemory
1225793lizi14Sure Bet (CEOI17_sure)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; vector<double>v1,v2; for(int i=0; i<n; i++){ double j,k; cin>>j>>k; if(j>=k){ v1.push_back(j); } else v2.push_back(k); } if(v1.size()==0 || v2.size()==0){ cout<<0<<endl; exit(0); } sort(v1.begin(),v1.end()); sort(v2.begin(),v2.end()); int i=v1.size()-1,j=v2.size()-1; int ha=0; double ans1=0,ans2=0; double ans=-1e9; int ka=0; while(ha==0){ if(i<0 || j<0){ break; } ans1+=v1[i]; ka++; ans2+=v2[j]; ka++; if(v1[i]>v2[j]){ //int bati=v2[j]; while(int(ans2)<int(ans1)){ j--; if(j<0){ ha=1; break; } //bati+=v2[j]; ans2+=v2[j]; ka++; ans=max(ans,min(ans1-ka,ans2-ka)); } i--; } else{ while(int(ans1)<int(ans2)){ i--; if(i<0){ ha=1; break; } ans1+=v1[i]; ka++; ans=max(ans,min(ans1-ka,ans2-ka)); } j--; } //cout<<ans1<<" "<<ans2<<endl; // if(min(ans1-ka,ans2-ka)>=ans){ // cout<<ans1<<" "<<ans2<<" "<<ka<<endl; // } ans=max(ans,min(ans1-ka,ans2-ka)); } printf("%.4lf",(double)ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...