Submission #495962

#TimeUsernameProblemLanguageResultExecution timeMemory
495962NalrimetSegments (IZhO18_segments)C++17
7 / 100
5095 ms1620 KiB
#include<bits/stdc++.h>

using namespace std;

const int N = 2 * 1e5 + 5;
const int inf = 1000000000;

//#define int long long
#define F first
#define S second
#define pb push_back

int n, t, a, b, lastans, k, id;
bool used[N];
vector<pair<int, int>> v;

 main() {

    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin >> n >> t;

    int type;

    while(n--){
        cin >> type;
        if(type == 1){
            cin >> a >> b;
            a = a ^ (t * lastans);
            b = b ^ (t * lastans);
            if(a > b) swap(a, b);
//            cout << a << ' ' << b << '\n';
            used[v.size()] = 1;
            v.pb({a, b});
        }
        else if(type == 2){
            cin >> id;
//            cout << id - 1 << '\n';;
            used[id - 1] = 0;
        }
        else{
            cin >> a >> b >> k;
            a = a ^ (t * lastans);
            b = b ^ (t * lastans);
            if(a > b) swap(a, b);
//            cout << a << ' ' << b << '\n';
            lastans = 0;
            for(int i = 0; i < v.size(); ++i){
                if(used[i]){
//                    cout << v[i].F << ' ' << v[i].S << '\n';
                     if(min(v[i].S, b) - max(v[i].F, a) + 1 >= k) lastans++;
                }
            }
//            l x y r
//            l x r y
//            x l y r
//            x l r y
            cout << lastans << '\n';
        }
    }

    return 0;

}

Compilation message (stderr)

segments.cpp:17:2: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   17 |  main() {
      |  ^~~~
segments.cpp: In function 'int main()':
segments.cpp:50:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |             for(int i = 0; i < v.size(); ++i){
      |                            ~~^~~~~~~~~~
#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...