Submission #1206911

#TimeUsernameProblemLanguageResultExecution timeMemory
1206911trimkusA Light Inconvenience (CEOI23_light)C++20
50 / 100
175 ms424 KiB
#include "light.h" #include <bits/stdc++.h> using namespace std; using ll = long long; int cnt; ll N = 1; const ll alpha = 5; vector<ll> active = {1}; void prepare(){ cnt = 0; } void complete(ll p) { vector<ll> nw = {N}; ll x = N; 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]; } nw.push_back(x); } 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...