#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |