#include "light.h"
#include<iostream>
#include<stack>
#include<map>
#include<vector>
#include<string>
#include<cassert>
#include<unordered_map>
#include <queue>
#include <cstdint>
#include<cstring>
#include<limits.h>
#include<cmath>
#include<set>
#include<algorithm>
#include <iomanip>
#include<numeric>
#include<complex>
#include<bitset>
using namespace std;
#define ll long long
#define f first
#define s second
#define pii pair<int,int>
#define ppii pair<int,pii>
#define vi vector<int>
#define pb push_back
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define F(n) for(int i=0;i<n;i++)
#define lb lower_bound
#define ub upper_bound
#define fastio ios::sync_with_stdio(false);cin.tie(NULL);
#pragma GCC optimize ("03,unroll-lopps")
#define int long long
int cnt,n,yes;
vector<int>have;
void prepare(){
have.clear();
have.pb(1);
n=1;
}
int idx(int x){return (n-x+1);}
pair<long long, std::vector<long long>> join(long long p){
n+=p;
pair<int,vector<int>>ans;
vector<int>tmp;
for(auto &j:have)j+=p;
int cur=1;
ans.f=p;
while(cur<n){
tmp.pb(cur);
auto it=upper_bound(all(have),2*cur+1);
if(it!=have.end()&&(*it)-p<=2*cur+1)cur=2*cur+1;
else if(it!=have.begin()&&cur<=(*prev(it))){
cur=(*(prev(it)));
}
else break;
}
tmp.pb(n);
sort(all(tmp));
tmp.erase(unique(all(tmp)),tmp.end());
swap(tmp,have);
for(auto i:have)ans.s.pb(idx(i));
reverse(all(ans.s));
return ans;
}
pair<long long, std::vector<long long>> leave(long long p){
n-=p;
pair<int,vector<int>>ans;
vector<int>tmp;
for(auto &j:have)j-=p;
int cur=1;
ans.f=p;
while(cur<n){
tmp.pb(cur);
auto it=upper_bound(all(have),2*cur+1);
if(it!=have.end()&&(*it)-p<=2*cur+1)cur=2*cur+1;
else if(it!=have.begin()&&cur<=(*prev(it))){
cur=(*(prev(it)));
}
else break;
}
tmp.pb(n);
sort(all(tmp));
tmp.erase(unique(all(tmp)),tmp.end());
swap(tmp,have);
for(auto i:have)ans.s.pb(idx(i));
reverse(all(ans.s));
return ans;
}
/*
4095
2
8908
-1835
*/
Compilation message (stderr)
light.cpp:34:40: warning: bad option '-funroll-lopps' to pragma 'optimize' [-Wpragmas]
34 | #pragma GCC optimize ("03,unroll-lopps")
| ^
light.cpp:38:14: warning: bad option '-funroll-lopps' to attribute 'optimize' [-Wattributes]
38 | void prepare(){
| ^
light.cpp:43:14: warning: bad option '-funroll-lopps' to attribute 'optimize' [-Wattributes]
43 | int idx(int x){return (n-x+1);}
| ^
light.cpp:44:57: warning: bad option '-funroll-lopps' to attribute 'optimize' [-Wattributes]
44 | pair<long long, std::vector<long long>> join(long long p){
| ^
light.cpp:68:58: warning: bad option '-funroll-lopps' to attribute 'optimize' [-Wattributes]
68 | pair<long long, std::vector<long long>> leave(long long p){
| ^
# | 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... |