Submission #1206927

#TimeUsernameProblemLanguageResultExecution timeMemory
1206927trimkusA Light Inconvenience (CEOI23_light)C++20
100 / 100
182 ms436 KiB
#include "light.h" #include <bits/stdc++.h> using namespace std; using ll = long long; int cnt; ll N = 1; const ll alpha = 1; vector<ll> active = {1}; void prepare(){ cnt = 0; } void complete(ll p) { vector<ll> nw = {N}; ll x = N; // cout << x << " -> "; while (x > 1) { x -= min(x - 1, N + 1 - (x - 1)); int i = upper_bound(begin(active), end(active), x) - begin(active) - 1; if (x - active[i] > p) { x = active[i + 1]; } // cout << x << " -> "; nw.push_back(x); } // cout << " end!\n"; nw.push_back(1); active = nw; } std::pair<long long, std::vector<long long>> join(long long p){ ll T = alpha * p; N += p; complete(T); sort(begin(active), end(active)); active.erase(unique(begin(active), end(active)), end(active)); return {T, active}; } std::pair<long long, std::vector<long long>> leave(long long p){ ll T = alpha * p; N -= p; complete(T); sort(begin(active), end(active)); active.erase(unique(begin(active), end(active)), end(active)); return {T, active}; }
#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...