Submission #964311

#TimeUsernameProblemLanguageResultExecution timeMemory
964311pccSure Bet (CEOI17_sure)C++17
100 / 100
91 ms8392 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll,ll> #define pii pair<int,int> #define fs first #define sc second #define tlll tuple<ll,ll,ll> #define int ll #define ld long double const int mxn = 2e5+10; ll N; ld arr[mxn],brr[mxn]; ld calc(int a,int b){ if(a<=0||b<=0)return 0; return min(arr[a],brr[b])-a-b; } main(){ scanf("%d",&N); for(int i = 1;i<=N;i++){ double f; scanf("%lf",&f); arr[i] = f; scanf("%lf",&f); brr[i] = f; } sort(arr+1,arr+N+1,greater<ld>()); sort(brr+1,brr+N+1,greater<ld>()); for(int i = 1;i<=N*2;i++){ arr[i] += arr[i-1]; brr[i] += brr[i-1]; } ld ans = 0; for(int i = 1;i<=N*2;i++){ ll l = 0,r = min(i,N); while(l != r){ int mid = (l+r+1)>>1; if(arr[mid]>brr[i-mid])r = mid-1; else l = mid; } ans = max(ans,min(arr[l],brr[i-l])-i); for(int j = -2;j<=2;j++){ auto l = r+j; if(l<=i)ans = max(ans,calc(l,i-l)); } } printf("%.4lf\n",(double)ans); return 0; }

Compilation message (stderr)

sure.cpp:23:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   23 | main(){
      | ^~~~
sure.cpp: In function 'int main()':
sure.cpp:24:10: warning: format '%d' expects argument of type 'int*', but argument 2 has type 'long long int*' [-Wformat=]
   24 |  scanf("%d",&N);
      |         ~^  ~~
      |          |  |
      |          |  long long int*
      |          int*
      |         %lld
sure.cpp:24:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |  scanf("%d",&N);
      |  ~~~~~^~~~~~~~~
sure.cpp:27:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |   scanf("%lf",&f);
      |   ~~~~~^~~~~~~~~~
sure.cpp:29:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |   scanf("%lf",&f);
      |   ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...