Submission #1301144

#TimeUsernameProblemLanguageResultExecution timeMemory
1301144b_malinowskiRice Hub (IOI11_ricehub)C++20
0 / 100
0 ms332 KiB
#include <bits/stdc++.h> using namespace std; using i64 = long long; bool Spr(const vector<i64>& fields, i64 B, int amo) { if (amo == 0) return true; i64 cost = 0; for (int i = 0; i < amo; i++) cost += llabs(fields[i] - fields[amo / 2]); if (cost <= B) return true; for (int i = 1; i + amo <= (int)fields.size(); i++) { cost += fields[i + amo - 1] - 2LL * fields[i + amo / 2] + fields[i - 1]; cost += (fields[amo / 2 + 1] - fields[amo / 2]) * (1LL * (amo / 2 * 2 - amo)); if (cost <= B) return true; } return false; } long long besthub(int R, int L, int X[], long long B) { vector<i64> fields(R); for (int i = 0; i < R; i++) fields[i] = X[i]; int low = 0, high = R; while (low < high) { int mid = (low + high + 1) / 2; if (Spr(fields, B, mid)) low = mid; else high = mid - 1; } return low; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...