This documentation is automatically generated by online-judge-tools/verification-helper
#ifndef call_from_test
#include <bits/stdc++.h>
using namespace std;
#define call_from_test
#include "../rbst.cpp"
#undef call_from_test
#endif
//BEGIN CUT HERE
template<typename Data, size_t LIM>
struct Persistent : RBST<Persistent<Data, LIM>, Data, typename Data::Node, LIM>{
using super = RBST<Persistent, Data, typename Data::Node, LIM>;
using Node = typename Data::Node;
Data data;
template<class... Args>
Persistent(Args... args):data(forward<Args>(args)...){}
inline Node* clone(Node *t){
if(t==nullptr) return t;
return super::create(*t);
}
inline Node* touch(Node *t){
if(t==nullptr) return t;
t=clone(t);
if(data.dirty(t)){
t->l=clone(t->l);
t->r=clone(t->r);
}
return data.eval(t);
}
using super::toggle;
inline void toggle(Node *t){return data.toggle(t);}
template<typename E>
inline void propagate(Node *t,E x){return data.propagate(t,x);}
inline Node* pushup(Node *t){return data.pushup(t);}
inline decltype(auto) get_val(Node *a,size_t k){
return data.get_val(super::get_val(a,k));
}
using super::merge, super::split;
decltype(auto) query(Node *a,size_t l,size_t r){
auto s=split(a,l);
auto t=split(s.second,r-l);
auto u=t.first;
return data.reflect(u);
}
bool almost_full() const{
return super::size+1000>LIM;
}
Node* rebuild(Node* a){
auto vs=data.dump(a);
super::size=0;
return super::build(vs);
}
};
//END CUT HERE
#ifndef call_from_test
#define call_from_test
#include "../data/array.cpp"
#undef call_from_test
signed JOISC2012_COPYPASTE(){
cin.tie(0);
ios::sync_with_stdio(0);
int m;
string buf;
cin>>m>>buf;
using Data = Array<char>;
using Node = Data::Node;
const size_t LIM = 1e7;
Persistent<Data, LIM> pa;
vector<Node> vs(buf.begin(),buf.end());
auto rt=pa.build(vs);
int n;
cin>>n;
for(int i=0;i<n;i++){
int a,b,c;
cin>>a>>b>>c;
auto s=pa.split(rt,a);
auto t=pa.split(s.second,b-a);
auto u=pa.split(rt,c);
rt=pa.merge(pa.merge(u.first,t.first),u.second);
if((int)pa.count(rt)>m)
rt=pa.split(rt,m).first;
if(pa.almost_full()) rt=pa.rebuild(rt);
}
auto ds=pa.data.dump(rt);
buf.resize(ds.size());
for(int i=0;i<(int)ds.size();i++) buf[i]=ds[i].val;
cout<<buf<<endl;
return 0;
}
/*
verified on 2020/11/04
https://atcoder.jp/contests/joisc2012/tasks/joisc2012_copypaste
*/
#define call_from_test
#include "../data/lazy.cpp"
#undef call_from_test
signed ARC030_D(){
cin.tie(0);
ios::sync_with_stdio(0);
const char newl = '\n';
int n,q;
cin>>n>>q;
using ll = long long;
using P = pair<ll, ll>;
vector<P> vp(n,P(0,1));
for(int i=0;i<n;i++) cin>>vp[i].first;
auto f=[](P a,P b){return P(a.first+b.first,a.second+b.second);};
auto g=[](P a,ll b){return P(a.first+b*a.second,a.second);};
auto h=[](ll a,ll b){return a+b;};
auto flip=[](P a){return a;};
using Data = Lazy<P, ll, decltype(f), decltype(g), decltype(h),
decltype(flip)>;
using Node = Data::Node;
constexpr size_t LIM = 6e6;
Persistent<Data, LIM> G(f,g,h,flip,P(0,0),0);
vector<Node> vs;
for(auto v:vp) vs.emplace_back(v,0);
auto rt=G.build(vs);
for(int i=0;i<q;i++){
int t;
cin>>t;
if(t==1){
int a,b,v;
cin>>a>>b>>v;
a--;
rt=G.update(rt,a,b,v);
}
if(t==2){
int a,b,c,d;
cin>>a>>b>>c>>d;
a--;c--;
auto s=G.split(rt,a);
auto t=G.split(s.second,b-a);
auto u=G.split(rt,c);
auto v=G.split(u.second,d-c);
rt=G.merge(G.merge(s.first,v.first),t.second);
}
if(t==3){
int a,b;
cin>>a>>b;
a--;
cout<<G.query(rt,a,b).first<<newl;
}
if(G.almost_full()) rt=G.rebuild(rt);
}
return 0;
}
/*
verified on 2020/11/04
https://atcoder.jp/contests/arc030/tasks/arc030_4
*/
//INSERT ABOVE HERE
signed main(){
//JOISC2012_COPYPASTE();
//ARC030_D();
return 0;
}
#endif
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat
bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/languages/cplusplus.py", line 187, in bundle
bundler.update(path)
File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 400, in update
raise BundleErrorAt(path, i + 1, "unable to process #include in #if / #ifdef / #ifndef other than include guards")
onlinejudge_verify.languages.cplusplus_bundle.BundleErrorAt: bbst/rbst/impl/persistent.cpp: line 6: unable to process #include in #if / #ifdef / #ifndef other than include guards