Submission #1206904

#TimeUsernameProblemLanguageResultExecution timeMemory
1206904trimkusA Light Inconvenience (CEOI23_light)C++20
5 / 100
152 ms416 KiB
#include "light.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int cnt;
ll N = 1;
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];
		}
		nw.push_back(x);
	}
	nw.push_back(1);
	active = nw;
}

std::pair<long long, std::vector<long long>> join(long long p){
	ll T = p;
	N += p;
	complete(p);
	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 = p;
	N -= p;
	complete(p);
	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...