Submission #1190880

#TimeUsernameProblemLanguageResultExecution timeMemory
1190880UnforgettableplA Light Inconvenience (CEOI23_light)C++20
100 / 100
162 ms432 KiB
#include <bits/stdc++.h> using namespace std; #define int long long namespace { vector<int> curr = {1}; int N = 1; void solve(int x){ auto chooselatest = [&](int l,int r){ auto iter = upper_bound(curr.begin(),curr.end(),r); assert(iter!=curr.begin()); iter--; int d = min((*iter)+x,r); assert(l<=d); return d; }; vector<int> newcurr = {1}; int currele = 1; while(currele<N){ int nextele = N+1+currele; if(nextele&1)nextele++; nextele/=2; currele = chooselatest(currele+1,nextele); newcurr.emplace_back(currele); } assert(newcurr.size()<=150); swap(newcurr,curr); } } void prepare(){} pair<int,vector<int>> join(int x){ N+=x; solve(x); return {x,curr}; } pair<int,vector<int>> leave(int x){ N-=x; while(!curr.empty() and curr.back()>N)curr.erase(--curr.end()); solve(x); return {x,curr}; }
#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...