Submission #1117993

#TimeUsernameProblemLanguageResultExecution timeMemory
1117993vjudge1Segments (IZhO18_segments)C++17
75 / 100
5048 ms7720 KiB
#include <bits/stdc++.h>
  
using namespace std;
  
#define int long long
#define pb push_back
#define sz(x) x.size()
#define F first
#define S second
#define nl '\n'

signed main() 
{
    // freopen("input.txt", "r", stdin);
    // freopen("output.txt", "w", stdout);
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int q, t;
    cin >>q >>t;
    int lans = 0, id = 0;
    vector< pair<int, int> >v;
    while( q-- )
    {
        int type, l, r, k, id1;
        cin >>type;
        if( type == 1 )
        {
            cin >>l >>r;
            l = (l ^ (t * lans));
            r = (r ^ (t * lans));
            if( l > r )
                swap(l, r);
            ++id;
            v.pb({l, r});
        }
        else if( type == 2 )
        {
            cin >>id1;
            v[id1 - 1] = {0, 0};
        }
        else
        {
            cin >>l >>r >>k;
            l = (l ^ (t * lans));
            r = (r ^ (t * lans));
            if( l > r )
                swap(l, r);
            int res = 0;
            for( int i = 0; i < id; ++i )
            {
                int l1 = max(l, v[i].F);
                int r1 = min(r, v[i].S);
                if( r1 - l1 + 1 >= k )
                    ++res;
            }
            cout <<res <<nl;
            lans = res;
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...