Submission #725932

#TimeUsernameProblemLanguageResultExecution timeMemory
725932adrilenRice Hub (IOI11_ricehub)C++17
49 / 100
19 ms2892 KiB
#include "ricehub.h" #include<bits/stdc++.h> using namespace std; using ll = long long; typedef pair<int, int> pii; int besthub(int n, int L, int X[], long long b) { vector <ll> fields; for (int i = 0; i < n; i++) fields.emplace_back(X[i]); auto pos = fields.begin(), lt = fields.begin(), rt = fields.begin() + 1; ll cur = 0; if (n == 1) return 1; long output = 0; while (rt != fields.end()) { while (cur > b) { cur -= *pos - *lt; lt++; } while (rt != fields.end() && cur + (*rt - *pos) <= b) { cur += (*rt - *pos); rt++; } while (rt != fields.end() && (*pos - *lt) > (*rt - *pos)) { cur += (*rt - *pos) - (*pos - *lt); lt++, rt++; while (rt != fields.end() && cur + (*rt - *pos) <= b) { cur += (*rt - *pos); rt++; } } // cout << lt - fields.begin() << " " << pos - fields.begin() << " " << rt - fields.begin() << "\n"; output = max(output, ((rt - fields.begin()) - (lt - fields.begin()))); pos++; if (rt != fields.end()) { // cout << "c"; // cout << cur << " "; cur += (*pos - *(pos - 1)) * ((pos - fields.begin()) - (lt - fields.begin())); // cout << cur << " "; cur += (*(pos - 1) - *pos) * ((rt - fields.begin()) - (pos - fields.begin())); // cout << cur << "\n"; } } // cerr << output << "\n"; return output; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...