Submission #378060

#TimeUsernameProblemLanguageResultExecution timeMemory
378060MilosMilutinovic쌀 창고 (IOI11_ricehub)C++14
100 / 100
29 ms2688 KiB
#include "ricehub.h" #include <bits/stdc++.h> using namespace std; int besthub(int n, int len, int* a, long long b) { vector<long long> pref(n); for (int i = 0; i < n; i++) { if (i == 0) { pref[i] = a[i]; } else { pref[i] = pref[i - 1] + a[i]; } } auto Can = [&](int l, int r) { int mid = l + r >> 1; long long ll = (long long) a[mid] * (mid - l + 1) - (pref[mid] - (l == 0 ? 0LL: pref[l - 1])); long long rr = pref[r] - pref[mid] - (long long) a[mid] * (r - mid); return ll + rr <= b; }; int ans = 1; for (int i = 0; i < n; i++) { int bot = i, top = n - 1, mx = 0; while (bot <= top) { int mid = bot + top >> 1; if (Can(i, mid)) { mx = mid - i + 1; bot = mid + 1; } else { top = mid - 1; } } ans = max(ans, mx); } return ans; }

Compilation message (stderr)

ricehub.cpp: In lambda function:
ricehub.cpp:16:17: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   16 |     int mid = l + r >> 1;
      |               ~~^~~
ricehub.cpp: In function 'int besthub(int, int, int*, long long int)':
ricehub.cpp:25:21: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   25 |       int mid = bot + top >> 1;
      |                 ~~~~^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...