Submission #1301168

#TimeUsernameProblemLanguageResultExecution timeMemory
1301168b_malinowski쌀 창고 (IOI11_ricehub)C++20
100 / 100
8 ms2376 KiB
#include <bits/stdc++.h> using namespace std; using i64 = long long; bool Spr(const vector<i64>& fields, vector<i64>& pref, i64 B, int amo) { for (int i = 0; i + amo <= fields.size(); i++) { int mid = i + amo/2; i64 l = fields[mid]*(mid-i) - (pref[mid]-pref[i]); i64 r = (pref[i+amo] - pref[mid+1]) - fields[mid]*(i+amo-1-mid); if (l + r <= B) { return true; } } return false; } long long besthub(int R, int L, int X[], long long B) { vector<i64> pref(R + 1); vector<i64> fields(R); for (int i = 0; i < R; i++) { fields[i] = X[i]; pref[i + 1] = pref[i] + fields[i]; } i64 pocz = 0, kon = R, srodek; while (pocz < kon) { srodek = (pocz + kon + 1) / 2; if (Spr(fields, pref, B, srodek)) { pocz = srodek; } else { kon = srodek - 1; } } return pocz; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...