Submission #103833

#TimeUsernameProblemLanguageResultExecution timeMemory
103833luciocfSure Bet (CEOI17_sure)C++14
100 / 100
124 ms3576 KiB
// CEOI 2017 - Sure Bet // Lúcio Cardoso #include <bits/stdc++.h> using namespace std; const int maxn = 1e5+10; int n; double a[maxn], b[maxn]; double s[2][maxn]; int busca(int k, bool q) { int ini = 1, fim = n, ans = n; while (ini <= fim) { int mid = (ini+fim)>>1; if (s[q][k] <= s[!q][mid]) ans = mid, fim = mid-1; else ini = mid+1; } return ans; } bool comp(double a, double b) {return a > b;} int main(void) { scanf("%d", &n); for (int i = 1; i <= n; i++) scanf("%lf %lf", &a[i], &b[i]); sort(a+1, a+n+1, comp); sort(b+1, b+n+1, comp); for (int i = 1; i <= n; i++) { s[0][i] = s[0][i-1]+a[i]; s[1][i] = s[1][i-1]+b[i]; } double ans = 0.00; for (int i = 1; i <= n && s[0][i] <= s[1][n]; i++) ans = max(ans, s[0][i]-i-busca(i, 0)); for (int i = 1; i <= n && s[1][i] <= s[0][n]; i++) ans = max(ans, s[1][i]-i-busca(i, 1)); printf("%.4lf\n", ans); }

Compilation message (stderr)

sure.cpp: In function 'int main()':
sure.cpp:34:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
  ~~~~~^~~~~~~~~~
sure.cpp:37:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lf %lf", &a[i], &b[i]);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...