Submission #495835

#TimeUsernameProblemLanguageResultExecution timeMemory
495835kinglineSegments (IZhO18_segments)C++17
7 / 100
5081 ms5240 KiB
#include <bits/stdc++.h>
#define file(data) freopen(data".in", "r", stdin); freopen(data".out", "w", stdout);
#define pb push_back
#define all(data) data.begin(), data.end()
#define endl '\n'
#define ll long long
//#define int long long
#define pii pair < int, int >

using namespace std;

const int M = 4e5 + 5;
//const int mod = 1e9 + 7;

int n, t;

main() {
    //file("pieaters");
    /*ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);*/
    cin >> n >> t;
    int id = 0, last = 0, cs = 0;
    multiset < pair < int, pii > > st;
    while(n--) {
        int tp, a, b, k;
        cin >> tp;
        if(tp == 1) {
            cin >> a >> b;
            a ^= (t * last);
            b ^= (t * last);
            if(a > b) swap(a, b);
            st.insert({++id, {a, b}});
        } else if(tp == 2) {
            cin >> k;
            st.erase(*st.lower_bound({k, {0, 0}}));
        } else {
            cin >> a >> b >> k;
            a = a ^ (last * t);
            b = b ^ (last * t);
            if(a > b) swap(a, b);
            int ans = 0;
            //cout << "Case " << ++cs << ": " << a << " " << b << endl;
            for(multiset < pair < int, pii > >::iterator it = st.begin(); it != st.end(); it++) {
                pii z = (*it).second;
                //cout << z.first << " " << z.second << endl;
                if(min(z.second, b) - max(z.first, a) + 1 >= k) {
                    ans++;
                }
            }
            cout << ans << endl;
            last = ans;
        }
    }
}






Compilation message (stderr)

segments.cpp:17:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   17 | main() {
      | ^~~~
segments.cpp: In function 'int main()':
segments.cpp:23:27: warning: unused variable 'cs' [-Wunused-variable]
   23 |     int id = 0, last = 0, cs = 0;
      |                           ^~
#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...