#include "light.h"
//#include "sample_grader.cpp"
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ld long double
#define show(x,y) cout << y << " " << #x << endl;
#define show2(x,y,i,j) cout << y << " " << #x << " " << j << " " << #i << endl;
#define show3(x,y,i,j,p,q) cout << y << " " << #x << " " << j << " " << #i << " " << q << " " << #p << endl;
#define show4(x,y) for(auto it:y) cout << it << " "; cout << #x << endl;
typedef pair<int,int>pii;
//mt19937_64 rng(chrono::system_clock::now().time_since_epoch().count());
set<int>se;
int len=0;
void prepare(){
se.insert(1);
len=1;
}
pair<long long,vector<long long>>join(long long p){
len+=p;
//redo the structure
vector<long long>v;
int cur=len;
while(cur>0){
//need something
auto it=se.lower_bound(cur);
int rgt=-1;
int lft=-1;
if(it!=se.end()) rgt=*it;
if(it!=se.begin()){
it--;
lft=min(cur,*it+p);
}
if(lft!=cur) cur=rgt;
v.push_back(cur);
int diff=len-cur+1;
cur=cur-diff-1;
}
v.push_back(1);
sort(v.begin(),v.end());
v.resize(unique(v.begin(),v.end())-v.begin());
//show4(v,v);
se.clear();
for(auto it:v) se.insert(it);
return {p,v};
}
pair<long long,std::vector<long long>>leave(long long p){
len-=p;
//redo the structure
vector<long long>v;
int cur=len;
while(cur>0){
//need something
auto it=se.lower_bound(cur);
int rgt=-1;
int lft=-1;
if(it!=se.end()) rgt=*it;
if(it!=se.begin()){
it--;
lft=min(cur,*it+p);
}
if(lft!=cur) cur=rgt;
v.push_back(cur);
int diff=len-cur+1;
cur=cur-diff-1;
}
v.push_back(1);
sort(v.begin(),v.end());
v.resize(unique(v.begin(),v.end())-v.begin());
//show4(v,v);
se.clear();
for(auto it:v) se.insert(it);
return {p,v};
}
# | 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... |