Submission #1294405

#TimeUsernameProblemLanguageResultExecution timeMemory
1294405BlockOGSails (IOI07_sails)C++20
70 / 100
1096 ms1300 KiB
#include <bits/stdc++.h> // meeeooowwwww mrrowwww :3 // go play vivid/stasis!! now!!!! https://vividstasis.gay #define fo(i, a, b) for (auto i = (a); i < (b); i++) #define of(i, a, b) for (auto i = (b); i-- > (a);) #define f first #define s second #define pb push_back #define lb lower_bound #define ub upper_bound #define be(a) a.begin(), a.end() using namespace std; int ____init = []{ ios::sync_with_stdio(false); cin.tie(NULL), cout.tie(NULL); return 0; }(); int cnts[100001]; int main() { int n; cin >> n; vector<pair<int, int>> v(n); fo(i, 0, n) cin >> v[i].f >> v[i].s; sort(be(v)); int prev = 0; for (auto [i, j] : v) { cnts[0] += i - prev; prev = i; int to_add = 0; fo(k, 0, n + 1) { if (!j && !to_add) break; int pre_add_cnts_k = cnts[k]; cnts[k] += to_add; to_add = min(pre_add_cnts_k, j); j -= to_add; cnts[k] -= to_add; } } long long res = 0; fo(i, 1, n + 1) res += (long long)cnts[i] * i * (i - 1) / 2; cout << res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...