제출 #317846

#제출 시각아이디문제언어결과실행 시간메모리
317846nandonathanielSure Bet (CEOI17_sure)C++14
100 / 100
107 ms3576 KiB
#include<bits/stdc++.h> using namespace std; double a[100005],b[100005]; int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int n; cin >> n; for(int i=1;i<=n;i++){ cin >> a[i] >> b[i]; a[i]-=1.0;b[i]-=1.0; } sort(a+1,a+n+1); reverse(a+1,a+n+1); sort(b+1,b+n+1); reverse(b+1,b+n+1); for(int i=1;i<=n;i++){ a[i]+=a[i-1]; b[i]+=b[i-1]; } double ans=0; for(int i=1;i<=n;i++){ bool state=(a[i]-1.0)>=(b[1]-(double)i); int ki=1,ka=n,res; while(ki<=ka){ int mid=(ki+ka)/2; bool sini=((a[i]-(double)mid)>=(b[mid]-(double)i)); if(sini==state){ res=mid; ki=mid+1; } else ka=mid-1; } if(state){ ans=max(ans,b[res]-(double)i); if(res+1<=n)ans=max(ans,a[i]-(double)(res+1)); } else{ ans=max(ans,a[i]-1.0); } } cout << fixed << setprecision(4) << ans << '\n'; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

sure.cpp: In function 'int main()':
sure.cpp:37:45: warning: 'res' may be used uninitialized in this function [-Wmaybe-uninitialized]
   37 |    if(res+1<=n)ans=max(ans,a[i]-(double)(res+1));
      |                                         ~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...