Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- oooooooydmmNNNNNNNNNNNNNNNNNNNNNNmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNmdhyooooooo
- ooooydNNNNNNNNNNNNNNNNNNNNNNNNmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNdyoooo
- oosmNNNNNNNNNNNNNNNNNNNNNNNNNNmmmmddmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNmsoo
- oshmNNNNNNNNNNNNNNNNNNNNNNNNmdsshdmmmmmmNNNNNNNNNdmNNNNNNNNNNNNNNNNNNNNNNyo
- shhdNNNNNNNNNNNNNNNNNNNNNmys++/:--.....-:+oshmNNNmhmNNNNNNNNNNNNNNNNNNNNNNy
- yhhhNNNNNNNNNNNNNNNNNmho:.`` `./sdNNNNNNNNNNNNNNNNNNNNNNNNNNm
- hhhhNNNNNNNNNNNNNhhyo-` `-/ydNNNNNNNNNNNNNNNNNNNNNNNNN
- hddhdNNNNNNNNNNNd+.` .:+hNNNNNNNNNNNNNNNNNNNNNNNN
- hmdyhdNNNNNNNNdo-` .:+mNNNNNNNNNNNNNNNNNNNNNNN
- yyddyhmNNNNNmo. `/oymNNNNNNNNNNNNNNNNNNNNNN
- sshmmNNNNNNd-` ` ` `+ssdNNNNNNNNNNNNNNNNNNNNN
- ooyNNNNNNNm: `````` `://sdNNNNNNNNNNNNNNNNNNN
- sydmNNNNNNd. ```` ` `..`` ``:smNNNNNNNNNNNNNNNNN
- mmmmNNNNNNd. ` ````` `.-:///:-` `.+dNNNNhNNNNNNNNNNN
- NmmNNNNNNNd. ` -/shhhhdds- `:yNNNhdmNNNNNNNNN
- NNNNNNNNNNd` ```` ` ``` `:hd/-::-omy` `-smNNhdNNNNNNNNN
- NNNNNNNNNNy `.:/+oo+:. ` `` `/do `ys .ho` `:smNddNNNNNNNNN
- NNNNNNNNNNy `:/ydhs++++. ` ``` -yho:::-++. `:yNNmNNNNNNNNN
- NNNNNNNNNNm. .:omm-`y/ +/` ` ````` ``-+sso+:-``` `/hNNNNNNNNNNN
- NNNNNNNNNNN/ `.+mm/-/::s/``` ```` ```....``````` .+mNNNNNNNNNN
- NNNNNNNNNNNo `.+hddhys+-.`````````` ````...``````` `:hNNNNNNNNNN
- NNNNNNNNNNN+ `.:::--...``` ``````` `````` -sNNNNNNNNyo
- NNNNNNNNNNd- ```````````` `````` .+dNNNNNNN/.
- NNNNNNNNNNh` ````````` `` ` .:omNNNNNN/`
- NNNNNNNNNNy` ` ```` ``` `.:hNNNNNN/
- NNNNNNNNNNh` ```` ``` `--` `.oNNNNNN+
- NNNNNNNNNNm- ` ` `` `./oo:` `+NNNNNNs
- NNNNNNNNNNNy` ``` `:oyhs:` `+NNNNNNy
- NNNNNNNNNNNNo.` `.`` `-/shhyo:` `-sNNNNNNy`
- NNNNNNNNNNNNNs. `-//:.` `..:oyyys+-` `/mNNNNNNs`
- NNNNNNNNNNNNNNh:` `-/oso:.` ``````...`````-.-shhs/. `:hNNNNNNd/
- NNNNNNNNNNNNNNNm+` `.:osyyo/::-.`` .:syso/. `.:yNNNNNNNd:
- mNNNNNNNNNNNNNNNNy:` `.:osyy+.```` `-:+ssso+-` .-/sNNNNNNNNy-.
- yNNNNNNNNNNNNNNNdNms:.````-/osyo.``` ...`./+:oo+/-.`` `.:+smNNmmNNNNo./
- ohNNNNNNNNNNNNmNhhNhoo:.` ``:osyo:+++:/:--`..-+ss+:-.`` `-/oymNNh-ydNNh//o
- ooymNNNNNNNNNs+NmsNd.-os/...`-+yhy+-.````../+sssy++/-:.`.:oshmNNm-:+yNNhooo
- ooooydNNNNNNN:-yNhdN/ -oyo//-.+yhhhyssyyyoooyhhyhs/-.`.+hmNNNNN/.//sdyoooo
- oooooooyhmmNy:-:hhyms` .oddh+:+hdddhyyhhhhhddddh+-..-/hNNNNNN+--/+ooooooo
- */
- #pragma comment(linker, "/stack:200000000")
- #pragma GCC optimize("Ofast")
- #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
- #pragma GCC optimize("unroll-loops")
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- #define vll vector< ll >
- #define pll pair<ll, ll>
- #define vpll vector<pll>
- #define vvll vector<vector< ll > >
- #define fo(in, out) freopen(in, "r", stdin);freopen(out, "w", stdout);
- #define int ll
- #define debug(a) cerr << #a << " = " << a << '\n';
- #define debug2(a, b) cerr << #a << " = " << a << ", " << #b << " = " << b <<'\n';
- #define debug3(a, b, c) cerr << #a << " = " << a << ", " << #b << " = " << b << ", " << #c << " = " << c << '\n';
- signed main(){
- #ifdef DEBUG
- // freopen("in.txt", "r", stdin);
- #endif
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- ll n, q;
- cin >> n >> q;
- ll s = (ll)(sqrt(n+1));
- ll m = n+s-1;
- m/=s;
- vll op(n, 0);
- vll b(m, 0);
- ll bal = 1;
- vpll v(1, {-1,-1});
- for(ll j=0;j<q;j++){
- ll type;
- cin >> type;
- if(type==1){
- ll l, r;
- cin >> l >> r;
- l--;
- r--;
- int bl = l/s,br = r/s;
- ll res = 1;
- if(bl==br){
- for(int i=l;i<=r;i++){
- if(op[i]!=0){
- res = 0;
- }
- }
- }
- else{
- for(int i=l;i<=(bl+1)*s-1;i++){
- if(op[i]!=0) res = 0;
- }
- for(int i=bl+1;i<br;i++){
- if(b[i]!=0) res = 0;
- }
- for(int i=br*s;i<=r;i++){
- if(op[i]!=0) res = 0;
- }
- }
- if(res){
- if(bl==br){
- for(int i=l;i<=r;i++){
- if(b[i/s]!=0) b[i/s] = -1;
- op[i] = bal;
- }
- }
- else{
- for(int i=l;i<=(bl+1)*s-1;i++){
- if(b[i/s]!=0) b[i/s] = -1;
- op[i] = bal;
- }
- for(int i=bl+1;i<br;i++){
- b[i] = bal;
- }
- for(int i=br*s;i<=r;i++){
- if(b[i/s]!=0) b[i/s] = -1;
- op[i] = bal;
- }
- }
- bal++;
- v.push_back({l, r});
- }
- cout << res << '\n';
- }
- else{
- ll ind;
- cin >> ind;
- ind--;
- if(op[ind]==0){
- cout << "0 0\n";
- continue;
- }
- pll a = {0,0};//v[op[ind]];
- ll l = a.first, r = a.second;
- int bl = l/s,br = r/s;
- if(bl==br){
- for(int i=l;i<=r;i++){
- op[i] = 0;
- }
- }
- else{
- for(int i=l;i<=(bl+1)*s-1;i++){
- op[i] = 0;
- }
- for(int i=bl+1;i<br;i++){
- b[i] = 0;
- }
- for(int i=br*s;i<=r;i++){
- op[i] = 0;
- }
- }
- cout << l+1 << ' ' << r+1 << '\n';
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement