Submission #1206881

#TimeUsernameProblemLanguageResultExecution timeMemory
1206881trimkusA Light Inconvenience (CEOI23_light)C++20
0 / 100
1111 ms1051060 KiB
#include "light.h" #include <bits/stdc++.h> using namespace std; using ll = long long; int cnt; ll N = 1; vector<ll> active; void prepare(){ cnt = 0; } void complete() { active.clear(); ll bit = 0; for (int i = N; i >= N / 2;) { // cout << i << " -> "; active.push_back(i); i -= (1LL << bit); bit++; } bit = 0; for (int i = 1; i <= N / 2 + 1;) { active.push_back(i); i += (1LL << bit); bit++; } sort(begin(active), end(active)); active.erase(unique(begin(active), end(active)), end(active)); vector<ll> nactive = active; active.clear(); int M = (int)nactive.size(); active.push_back(nactive[0]); for (int i = 1; i <= M / 2; ++i) { ll j = nactive[i - 1]; ll till = nactive[i]; bit = 0; for (; j < till; j += (1LL << bit++)) { active.push_back(j); } } active.push_back(nactive[M - 1]); for (int i = M - 2; i >= M / 2; --i) { ll j = nactive[i + 1]; ll till = nactive[i]; bit = 0; for (; j > till; j -= (1LL << bit++)) { active.push_back(j); } } sort(begin(active), end(active)); active.erase(unique(begin(active), end(active)), end(active)); } std::pair<long long, std::vector<long long>> join(long long p){ ll T = 5 * p; N += p; complete(); 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 = 5 * p; N -= p; complete(); 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...