Submission #426790

# Submission time Handle Problem Language Result Execution time Memory
426790 2021-06-14T09:50:09 Z jeqcho Monkey and Apple-trees (IZhO12_apple) C++17
0 / 100
1 ms 332 KB
#include <bits/stdc++.h>
using namespace std;

typedef long double ld;
typedef long long ll;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<pair<int,int>> vpi;

#define FOR(i,a,b) for (int i = (a); i < (b); ++i)
#define F0R(i,a) FOR(i,0,a)
#define ROF(i,a,b) for (int i = (b)-1; i >= (a); --i)
#define R0F(i,a) ROF(i,0,a)
#define trav(a,x) for (auto& a: x)

#define pb push_back
#define rsz resize
#define sz(x) int(x.size())
#define all(x) begin(x), end(x)
#define fi first
#define se second

int t=0;

struct node
{
	int lx,rx;
	int val=0;
	bool lazy=0;
	node *lefchi=NULL,*rigchi=NULL;
	
	int comb(int a,int b){return a+b;}
	void extend()
	{
		if(!lefchi && rx-lx!=1)
		{
			int md=(lx+rx)/2;
			lefchi=new node({lx,md});
			rigchi=new node({md,rx});
			t+=2;
			assert(t<1e7);
		}
	}
	void refresh()
	{
		if(!lazy)return;
		val=rx-lx;
		lazy=0;
	}
	void push()
	{
		if(!lazy)return;
		refresh();
		if(rx-lx==1)return;
		extend();
		lefchi->lazy = 1;
		rigchi->lazy = 1;
	}
	
	int query(int lq,int rq)
	{
		if(lq>=rx || rq<=lx)return 0;
		refresh();
		if(lq<=lx && rq>=rx)return val;
		push();
		int lef = lefchi->query(lq,rq);
		int rig = rigchi->query(lq,rq);
		return comb(lef,rig);
	}
	void update(int lq,int rq)
	{
		
		if(lq>=rx || rq<=lx)return;
		push();
		if(lq<=lx && rq>=rx)
		{
			lazy=1;
			return;
		}
		extend();
		lefchi->update(lq,rq);
		rigchi->update(lq,rq);
		val = comb(lefchi->query(0,1<<30),rigchi->query(0,1<<30));
	}
};

int main()
{
	ios_base::sync_with_stdio(0); cin.tie(0);
	int m;
	cin>>m;
	int c=0;
	node seg({0,1<<30});
	++t;
	while(m--)
	{
		int d,x,y;
		cin>>d>>x>>y;
		if(d==1)
		{
			c=seg.query(c+x,c+y+1);
			cout<<c<<'\n';
		}
		else
		{
			seg.update(c+x,c+y+1);
		}
	}
	return 0;
}
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 332 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -