Submission #495747

#TimeUsernameProblemLanguageResultExecution timeMemory
495747NalrimetSegments (IZhO18_segments)C++17
7 / 100
5095 ms2504 KiB
#include<bits/stdc++.h> using namespace std; const int N = 1e6 + 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(a <= v[i].F && v[i].S <= b){ if(v[i].S - v[i].F + 1 >= k) lastans++; } else if(a <= v[i].F && v[i].F <= b){ if(b - v[i].F + 1 >= k) lastans++; } else if(a <= v[i].S && v[i].S <= b){ if(v[i].S - a + 1 >= k) lastans++; } else if(v[i].F <= a && b <= v[i].S){ if(b - 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: 'long long int' and 'std::vector<std::pair<long long int, long long 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...