Submission #671645

# Submission time Handle Problem Language Result Execution time Memory
671645 2022-12-13T12:07:38 Z tolbi Monkey and Apple-trees (IZhO12_apple) C++17
0 / 100
464 ms 262144 KB
#pragma optimize("Bismillahirrahmanirrahim")
//█▀█─█──█──█▀█─█─█
//█▄█─█──█──█▄█─█■█
//█─█─█▄─█▄─█─█─█─█
//Allahuekber
//ahmet23 orz...
//Sani buyuk Osman Pasa Plevneden cikmam diyor.
//FatihSultanMehmedHan
//YavuzSultanSelimHan
//AbdulhamidHan
#define author tolbi
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
#define vint(x) vector<int> x
#define deci(x) int x;cin>>x;
#define decstr(x) string x;cin>>x;
#define cinarr(x) for (auto &it : x) cin>>it;
#define coutarr(x) for (auto &it : x) cout<<it<<" ";cout<<endl;
#define sortarr(x) sort(x.begin(),x.end())
#define sortrarr(x) sort(x.rbegin(),x.rend())
#define det(x) cout<<"NO\0YES"+x*3<<endl;
#define INF LONG_LONG_MAX
#define rev(x) reverse(x.begin(),x.end());
#define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define tol(bi) (1LL<<((int)(bi)))
const int MOD = 1e9+7;
using namespace std;
mt19937 ayahya(chrono::high_resolution_clock().now().time_since_epoch().count());
struct SegTree{
	struct Node{
		int val, lnode, rnode, l, r, lazy;
		Node():lnode(-1),rnode(-1),val(0),lazy(0){}
	};
	vector<Node> segtree;
	SegTree(){
		segtree.push_back(Node());
		segtree[0].l=1;
		segtree[0].r=MOD;
		segtree[0].val=0;
		segtree[0].lazy=0;
	}
	void dallan(int node){
		int mid = segtree[node].l+(segtree[node].r-segtree[node].l)/2;
		if (segtree[node].lnode==-1){
			segtree[node].lnode=segtree.size();
			segtree.push_back(Node());
			segtree[segtree[node].lnode].l=segtree[node].l;
			segtree[segtree[node].lnode].r=mid;
		}
		if (segtree[node].rnode==-1){
			segtree[node].rnode=segtree.size();
			segtree.push_back(Node());
			segtree[segtree[node].rnode].l=mid+1;
			segtree[segtree[node].rnode].r=segtree[node].r;
		}
		if (segtree[node].lazy==1){
			segtree[node].val=segtree[node].r-segtree[node].l+1;
			segtree[segtree[node].lnode].lazy=1;
			segtree[segtree[node].rnode].lazy=1;
		}
		segtree[node].lazy=0;
	}
	int query(int l, int r, int node = 0){
		dallan(node);
		if (segtree[node].l>=l && segtree[node].r<=r) return segtree[node].val;
		if (segtree[node].l>r || segtree[node].r<l) return 0ll;
		return query(l, r, segtree[node].lnode)+query(l, r, segtree[node].rnode);
	}
	void update(int l, int r, int node = 0) {
		dallan(node);
		if (segtree[node].l>=l && segtree[node].r<=r){
			segtree[node].lazy=1;
			dallan(node);
			return;
		}
		if (segtree[node].l>r || segtree[node].r<l) return;
		update(l, r, segtree[node].lnode);
		update(l, r, segtree[node].rnode);
		segtree[node].val=segtree[segtree[node].lnode].val+segtree[segtree[node].rnode].val;
	}
};
int32_t main(){
	ios;
	int t=1;
	int tno = 0;
	if (!t) cin>>t;
	while (t-(tno++)){
		SegTree segtree;
		deci(q);
		int c = 0;
		while (q--){
			deci(d);
			deci(l);deci(r);
			l+=c;
			r+=c;
			if (d==1){
				c=segtree.query(l,r);
				cout<<c<<endl;
			}
			else {
				segtree.update(l,r);
			}
		}
	}
}

Compilation message

apple.cpp:1: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    1 | #pragma optimize("Bismillahirrahmanirrahim")
      | 
apple.cpp: In constructor 'SegTree::Node::Node()':
apple.cpp:32:19: warning: 'SegTree::Node::rnode' will be initialized after [-Wreorder]
   32 |   int val, lnode, rnode, l, r, lazy;
      |                   ^~~~~
apple.cpp:32:7: warning:   'long long int SegTree::Node::val' [-Wreorder]
   32 |   int val, lnode, rnode, l, r, lazy;
      |       ^~~
apple.cpp:33:3: warning:   when initialized here [-Wreorder]
   33 |   Node():lnode(-1),rnode(-1),val(0),lazy(0){}
      |   ^~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 24 ms 12864 KB Output is correct
5 Correct 29 ms 12872 KB Output is correct
6 Correct 27 ms 12880 KB Output is correct
7 Correct 28 ms 12888 KB Output is correct
8 Correct 209 ms 99544 KB Output is correct
9 Correct 438 ms 198772 KB Output is correct
10 Correct 463 ms 198632 KB Output is correct
11 Correct 458 ms 198700 KB Output is correct
12 Correct 464 ms 198632 KB Output is correct
13 Runtime error 419 ms 262144 KB Execution killed with signal 9
14 Halted 0 ms 0 KB -