Submission #797459

# Submission time Handle Problem Language Result Execution time Memory
797459 2023-07-29T12:08:20 Z kingfran1907 Segments (IZhO18_segments) C++14
0 / 100
5000 ms 5516 KB
#include <bits/stdc++.h>
#define X first
#define Y second

using namespace std;

const int maxn = 2e5+10;

int n, t;
set< int > s, cur;
int l[maxn], r[maxn];

int inter(pair<int, int> a, pair<int, int> b) {
	if (a.X > b.X) swap(a, b);
	return min(a.Y, b.Y) - b.X + 1;
}

int main() {
	scanf("%d%d", &n, &t);
	for (int i = 1; i <= n + 2; i++) s.insert(i);
	
	int lastans = 0;
	while (n--) {
		int type;
		scanf("%d", &type);
		if (type == 1) {
			int ind = *s.begin();
			s.erase(s.begin());
			
			int l, r;
			scanf("%d%d", &l, &r);
			l = l ^ (t * lastans);
			r = r ^ (t * lastans);
			if (l > r) swap(l, r);
			
			::l[ind] = l, ::r[ind] = r;
			cur.insert(ind);
		} else if (type == 2) {
			int x;
			scanf("%d", &x);
			cur.erase(x);
			s.insert(x);
		} else {
			int l, r, k;
			scanf("%d%d%d", &l, &r, &k);
			l = l ^ (t * lastans);
			r = r ^ (t * lastans);
			if (l > r) swap(l, r);
			
			lastans = 0;
			for (int tren : cur) {
				lastans += (inter({l, r}, {::l[tren], ::r[tren]}) >= k);
			}
			printf("%d\n", lastans);
		}
	}
	return 0;
}

Compilation message

segments.cpp: In function 'int main()':
segments.cpp:19:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |  scanf("%d%d", &n, &t);
      |  ~~~~~^~~~~~~~~~~~~~~~
segments.cpp:25:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |   scanf("%d", &type);
      |   ~~~~~^~~~~~~~~~~~~
segments.cpp:31:9: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |    scanf("%d%d", &l, &r);
      |    ~~~~~^~~~~~~~~~~~~~~~
segments.cpp:40:9: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   40 |    scanf("%d", &x);
      |    ~~~~~^~~~~~~~~~
segments.cpp:45:9: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   45 |    scanf("%d%d%d", &l, &r, &k);
      |    ~~~~~^~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Incorrect 11 ms 660 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 5071 ms 5516 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4517 ms 5416 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4517 ms 5408 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Incorrect 11 ms 660 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Incorrect 11 ms 660 KB Output isn't correct
4 Halted 0 ms 0 KB -