Submission #758654

# Submission time Handle Problem Language Result Execution time Memory
758654 2023-06-15T05:02:33 Z scanhex Segments (IZhO18_segments) C++17
75 / 100
2566 ms 41564 KB
#include <bits/stdc++.h>

using namespace std;
using nagai = long long;

struct dss {
	vector<pair<int,int>> segs;
	void insert(int l, int r) {
		segs.push_back({l, r});
	}
	int get(int l, int r, int k) {
		if (k == 0) return segs.size();
		int res = 0;
		for (auto& x : segs) {
			int ll = max(x.first, l), rr = min(x.second, r); 
			if (rr - ll + 1 >= k)
				++res;
		}
		return res;
	}
};

const int oo = 0x3f3f3f3f;
 
struct static1d {
	int* coords = nullptr;
	int cnt = 0;
	void clear() {
		if (coords)
			delete[] coords;
		cnt = 0;
	}

	void preadd(int c) {
		++cnt;
	}

	void preaddfinish() {
		coords = new int[cnt];
		cnt = 0;
	}

	void add(int c) {
		coords[cnt++] = c;
	}

	void finalize() {
	}

	int get(int l, int r) {
		if (l > r) return 0;
		auto itr = upper_bound(coords, coords + cnt, r);
		auto itl = lower_bound(coords, coords + cnt, l);
		//cerr << "coords\n";
		//for(auto& x : coords) 
			//cerr << x << ' ';
		//cerr << '\n';
		//cerr << l << ' ' << r << ' ' << itr - itl << '\n';
		return itr - itl;
	}
};

bool ycmp(pair<int, int> a, pair<int, int> b) {
	if (a.second != b.second)
		return a.second < b.second;
	return a.first < b.first;
}

struct static2d {
	vector<static1d> v;
	//static1d all;
	vector<int> xs;

	void preadd(int x, int y) {
		for (++x; x < v.size(); x = (x | x - 1) + 1)
			v[x].preadd(y);
	}

	void add(int x, int y) {
		for (++x; x < v.size(); x = (x | x - 1) + 1)
			v[x].add(y);
	}

	void build(vector<pair<int,int>> pts) {
		xs.clear();
		xs.reserve(pts.size());
		for (auto& x : v) 
			x.clear();
		for (auto& p : pts) 
			xs.push_back(p.first);
		sort(xs.begin(), xs.end());
		xs.erase(unique(xs.begin(), xs.end()), xs.end());
		v.resize(xs.size() + 1);
		//all.clear();
		for (auto& p: pts) 
			p.first = lower_bound(xs.begin(), xs.end(), p.first) - xs.begin();
		for (const auto& p : pts) {
			preadd(p.first, p.second);
			//all.add(p.second);
		}
		for (int i = 0; i < v.size(); ++i) 
			v[i].preaddfinish();
		for (const auto& p : pts) {
			add(p.first, p.second);
			//all.add(p.second);
		}
		for (int i = 0; i < v.size(); ++i) 
			v[i].finalize();
		//all.finalize();
	}

	int get(int xr, int y1, int y2) {
		//if (xr == oo) 
			//return all.get(y1, y2);
		if (xr < 0) return 0;
		++xr;
		int xrr = xr;
		xr = lower_bound(xs.begin(), xs.end(), xr) - xs.begin();
		int res = 0;
		for (; xr; xr &= xr - 1) 
			res += v[xr].get(y1, y2);
		//cerr << xrr << ' ' << y1 << ' ' << y2 << ' ' << res << '\n';
		return res;
	}

	// all inclusive
	int get(int x1, int x2, int y1, int y2) {
		if (x1 > x2) return 0;
		return get(x2, y1, y2) - get(x1 - 1, y1, y2);
	}
};

const int BL = 4000;

struct rofl2d {
	vector<pair<int,int>> all;
	vector<pair<int,int>> block;
	vector<pair<int,int>> erblock;
	vector<pair<int, int>> newall;
	static2d st;

	void check_rebuild() {
		if (block.size() + erblock.size() >= BL) {
			sort(block.begin(), block.end(), ycmp);
			newall.resize(all.size() + block.size());
			merge(all.begin(), all.end(), block.begin(), block.end(), newall.begin(), ycmp);
			sort(erblock.begin(), erblock.end(), ycmp);
			all.clear();
			int ptr = 0; 
			for (auto x : erblock) {
				 while (ptr < newall.size() && ycmp(newall[ptr], x))
					 all.push_back(newall[ptr++]);
				 // always true? 
				 ++ptr;
			}
			while (ptr < newall.size())
				all.push_back(newall[ptr++]);
			block.clear();
			erblock.clear();
			st.build(all);
		}
	}
	
	void insert(int x, int y) {
		block.push_back({x, y});
		check_rebuild();
	}

	void erase(int x, int y) {
		erblock.push_back({x, y});
		check_rebuild();
	}

	int get(int x1, int x2, int y1, int y2) {
		int res = st.get(x1, x2, y1, y2);
		/*
		for (auto p : block) 
			if (x1 <= p.first && p.first <= x2 && y1 <= p.second && p.second <= y2) 
				++res;
		for (auto p : erblock) 
			if (x1 <= p.first && p.first <= x2 && y1 <= p.second && p.second <= y2) 
				--res;
				*/
		return res;
	}
};


struct ds {
	int tot = 0;
	rofl2d rofl_l, rofl_r;
	void insert(int l, int r) {
		++tot;
		rofl_l.insert(l, r - l);
		rofl_r.insert(r, r - l);
		//rofl_len.insert(0, r - l);
	}
	void erase(int l, int r) {
		--tot;
		rofl_l.erase(l, r - l);
		rofl_r.erase(r, r - l);
		//rofl_len.erase(0, r - l);
	}
	int get(int l, int r, int k) {
		if (r - l + 1 < k) return 0;
		if (k == 0) return tot;
		int res = tot - rofl_l.block.size() + rofl_l.erblock.size();
		for (auto p : rofl_l.block) {
			int ll = max(p.first, l); 
			int rr = min(p.first + p.second, r);
			if (rr - ll + 1 >= k) 
				++res;
		}
		for (auto p : rofl_l.erblock) {
			int ll = max(p.first, l); 
			int rr = min(p.first + p.second, r);
			if (rr - ll + 1 >= k) 
				--res;
		}
		//cerr << "rofl_l" << '\n';
		res -= rofl_l.get(r - k + 2, oo, k - 1, oo);
		//cerr << "rofl_r" << '\n';
		res -= rofl_r.get(0, l + k - 2, k - 1, oo);
		//cerr << "rofl_len" << '\n';
		res -= rofl_l.get(0, oo, 0, k - 2);
		return res;
	}
};

void stress() {
	int C = 5;
	for (int i = 0; i < 10000; ++i) {
		ds smart;
		dss stupid;
		stringstream ss;
		for (int i = 0; i < 10; ++i) {
			int x = rand() % C, y = rand() % C;
			if (x > y) swap(x, y);
			ss << "1 " << x << ' ' << y << '\n';
			smart.insert(x, y);
			stupid.insert(x, y);

			int a = rand() % C, b = rand() % C, k = rand() % C;
			if (a > b) swap(a, b);
			if (smart.get(a, b, k) != stupid.get(a, b, k)) {
				ss << smart.get(a, b, k) << ' ' << stupid.get(a, b, k) << '\n';
				ss << "3 " << a << ' ' << b << ' ' << k << '\n';
				cerr << ss.str();
				exit(1);
			}
		}
	}
	exit(0);
}


int main() {
	//stress();
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n, t; 
	cin >> n >> t; 
	int lastans = 0;
	vector<pair<int, int>> segs;
	ds add;
	while (n--) {
		int tt;
		cin >> tt; 
		if (tt == 1) {
			int a, b;
			cin >> a >> b; 
			a ^= t * lastans;
			b ^= t * lastans;
			if (a > b) swap(a, b);
			segs.push_back({a, b});
			add.insert(a, b);
		}
		else if (tt == 2) {
			int id; 
			cin >> id; 
			--id;
			add.erase(segs[id].first, segs[id].second);
		}
		else {
			int a, b, k;
			cin >> a >> b >> k;
			a ^= t * lastans;
			b ^= t * lastans;
			if (a > b) swap(a, b);
			lastans = add.get(a, b, k);
			cout << lastans << '\n';
		}
	}
}

Compilation message

segments.cpp: In member function 'void static2d::preadd(int, int)':
segments.cpp:75:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<static1d>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   75 |   for (++x; x < v.size(); x = (x | x - 1) + 1)
      |             ~~^~~~~~~~~~
segments.cpp:75:38: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
   75 |   for (++x; x < v.size(); x = (x | x - 1) + 1)
      |                                    ~~^~~
segments.cpp: In member function 'void static2d::add(int, int)':
segments.cpp:80:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<static1d>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   80 |   for (++x; x < v.size(); x = (x | x - 1) + 1)
      |             ~~^~~~~~~~~~
segments.cpp:80:38: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
   80 |   for (++x; x < v.size(); x = (x | x - 1) + 1)
      |                                    ~~^~~
segments.cpp: In member function 'void static2d::build(std::vector<std::pair<int, int> >)':
segments.cpp:101:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<static1d>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  101 |   for (int i = 0; i < v.size(); ++i)
      |                   ~~^~~~~~~~~~
segments.cpp:107:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<static1d>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  107 |   for (int i = 0; i < v.size(); ++i)
      |                   ~~^~~~~~~~~~
segments.cpp: In member function 'int static2d::get(int, int, int)':
segments.cpp:117:7: warning: unused variable 'xrr' [-Wunused-variable]
  117 |   int xrr = xr;
      |       ^~~
segments.cpp: In member function 'void rofl2d::check_rebuild()':
segments.cpp:151:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  151 |      while (ptr < newall.size() && ycmp(newall[ptr], x))
      |             ~~~~^~~~~~~~~~~~~~~
segments.cpp:156:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  156 |    while (ptr < newall.size())
      |           ~~~~^~~~~~~~~~~~~~~
# 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 Correct 6 ms 432 KB Output is correct
4 Correct 6 ms 340 KB Output is correct
5 Correct 5 ms 1108 KB Output is correct
6 Correct 8 ms 452 KB Output is correct
7 Correct 9 ms 468 KB Output is correct
8 Correct 6 ms 852 KB Output is correct
9 Correct 6 ms 852 KB Output is correct
10 Correct 4 ms 1108 KB Output is correct
11 Correct 11 ms 448 KB Output is correct
12 Correct 11 ms 340 KB Output is correct
13 Correct 4 ms 1108 KB Output is correct
14 Correct 7 ms 852 KB Output is correct
15 Correct 7 ms 340 KB Output is correct
16 Correct 6 ms 340 KB Output is correct
17 Correct 8 ms 452 KB Output is correct
18 Correct 5 ms 1108 KB Output is correct
19 Correct 7 ms 448 KB Output is correct
20 Correct 6 ms 452 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 445 ms 10260 KB Output is correct
2 Correct 449 ms 10116 KB Output is correct
3 Correct 444 ms 10216 KB Output is correct
4 Correct 504 ms 10960 KB Output is correct
5 Correct 625 ms 19152 KB Output is correct
6 Correct 622 ms 19952 KB Output is correct
7 Correct 449 ms 10316 KB Output is correct
8 Correct 423 ms 10136 KB Output is correct
9 Correct 438 ms 10124 KB Output is correct
10 Correct 588 ms 3784 KB Output is correct
11 Correct 576 ms 5384 KB Output is correct
12 Correct 544 ms 15484 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 143 ms 1188 KB Output is correct
2 Correct 130 ms 1224 KB Output is correct
3 Correct 134 ms 1252 KB Output is correct
4 Correct 130 ms 1196 KB Output is correct
5 Correct 495 ms 15476 KB Output is correct
6 Correct 323 ms 12556 KB Output is correct
7 Correct 395 ms 13596 KB Output is correct
8 Correct 615 ms 19100 KB Output is correct
9 Correct 621 ms 18996 KB Output is correct
10 Correct 518 ms 15312 KB Output is correct
11 Correct 168 ms 1864 KB Output is correct
12 Correct 527 ms 15388 KB Output is correct
13 Correct 463 ms 12780 KB Output is correct
14 Correct 300 ms 6500 KB Output is correct
15 Correct 284 ms 5600 KB Output is correct
16 Correct 255 ms 4160 KB Output is correct
17 Correct 359 ms 10128 KB Output is correct
18 Correct 362 ms 10268 KB Output is correct
19 Correct 368 ms 10140 KB Output is correct
20 Correct 397 ms 10132 KB Output is correct
21 Correct 173 ms 2360 KB Output is correct
22 Correct 384 ms 8088 KB Output is correct
23 Correct 408 ms 11308 KB Output is correct
24 Correct 376 ms 8936 KB Output is correct
25 Correct 139 ms 1308 KB Output is correct
26 Correct 154 ms 1320 KB Output is correct
27 Correct 130 ms 1184 KB Output is correct
28 Correct 135 ms 1132 KB Output is correct
29 Correct 456 ms 11828 KB Output is correct
30 Correct 502 ms 12428 KB Output is correct
31 Correct 619 ms 19280 KB Output is correct
32 Correct 514 ms 15240 KB Output is correct
33 Correct 488 ms 13136 KB Output is correct
34 Correct 278 ms 5456 KB Output is correct
35 Correct 411 ms 10628 KB Output is correct
36 Correct 469 ms 14120 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 134 ms 1156 KB Output is correct
2 Correct 134 ms 1156 KB Output is correct
3 Correct 135 ms 1144 KB Output is correct
4 Correct 137 ms 1164 KB Output is correct
5 Correct 463 ms 16048 KB Output is correct
6 Correct 403 ms 3160 KB Output is correct
7 Correct 558 ms 16732 KB Output is correct
8 Correct 287 ms 4756 KB Output is correct
9 Correct 368 ms 7976 KB Output is correct
10 Correct 536 ms 15956 KB Output is correct
11 Correct 258 ms 3524 KB Output is correct
12 Correct 648 ms 19924 KB Output is correct
13 Correct 482 ms 12708 KB Output is correct
14 Correct 347 ms 7012 KB Output is correct
15 Correct 643 ms 19160 KB Output is correct
16 Correct 512 ms 13708 KB Output is correct
17 Correct 434 ms 10252 KB Output is correct
18 Correct 430 ms 10192 KB Output is correct
19 Correct 442 ms 10184 KB Output is correct
20 Correct 454 ms 10188 KB Output is correct
# 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 Correct 6 ms 432 KB Output is correct
4 Correct 6 ms 340 KB Output is correct
5 Correct 5 ms 1108 KB Output is correct
6 Correct 8 ms 452 KB Output is correct
7 Correct 9 ms 468 KB Output is correct
8 Correct 6 ms 852 KB Output is correct
9 Correct 6 ms 852 KB Output is correct
10 Correct 4 ms 1108 KB Output is correct
11 Correct 11 ms 448 KB Output is correct
12 Correct 11 ms 340 KB Output is correct
13 Correct 4 ms 1108 KB Output is correct
14 Correct 7 ms 852 KB Output is correct
15 Correct 7 ms 340 KB Output is correct
16 Correct 6 ms 340 KB Output is correct
17 Correct 8 ms 452 KB Output is correct
18 Correct 5 ms 1108 KB Output is correct
19 Correct 7 ms 448 KB Output is correct
20 Correct 6 ms 452 KB Output is correct
21 Correct 445 ms 10260 KB Output is correct
22 Correct 449 ms 10116 KB Output is correct
23 Correct 444 ms 10216 KB Output is correct
24 Correct 504 ms 10960 KB Output is correct
25 Correct 625 ms 19152 KB Output is correct
26 Correct 622 ms 19952 KB Output is correct
27 Correct 449 ms 10316 KB Output is correct
28 Correct 423 ms 10136 KB Output is correct
29 Correct 438 ms 10124 KB Output is correct
30 Correct 588 ms 3784 KB Output is correct
31 Correct 576 ms 5384 KB Output is correct
32 Correct 544 ms 15484 KB Output is correct
33 Correct 134 ms 1156 KB Output is correct
34 Correct 134 ms 1156 KB Output is correct
35 Correct 135 ms 1144 KB Output is correct
36 Correct 137 ms 1164 KB Output is correct
37 Correct 463 ms 16048 KB Output is correct
38 Correct 403 ms 3160 KB Output is correct
39 Correct 558 ms 16732 KB Output is correct
40 Correct 287 ms 4756 KB Output is correct
41 Correct 368 ms 7976 KB Output is correct
42 Correct 536 ms 15956 KB Output is correct
43 Correct 258 ms 3524 KB Output is correct
44 Correct 648 ms 19924 KB Output is correct
45 Correct 482 ms 12708 KB Output is correct
46 Correct 347 ms 7012 KB Output is correct
47 Correct 643 ms 19160 KB Output is correct
48 Correct 512 ms 13708 KB Output is correct
49 Correct 434 ms 10252 KB Output is correct
50 Correct 430 ms 10192 KB Output is correct
51 Correct 442 ms 10184 KB Output is correct
52 Correct 454 ms 10188 KB Output is correct
53 Correct 138 ms 1220 KB Output is correct
54 Correct 138 ms 1180 KB Output is correct
55 Correct 135 ms 1240 KB Output is correct
56 Correct 150 ms 1256 KB Output is correct
57 Correct 597 ms 6144 KB Output is correct
58 Correct 313 ms 2256 KB Output is correct
59 Correct 419 ms 12568 KB Output is correct
60 Correct 639 ms 1512 KB Output is correct
61 Correct 489 ms 12800 KB Output is correct
62 Correct 584 ms 18512 KB Output is correct
63 Correct 618 ms 19940 KB Output is correct
64 Correct 606 ms 18584 KB Output is correct
65 Correct 276 ms 4644 KB Output is correct
66 Correct 259 ms 3748 KB Output is correct
67 Correct 511 ms 14028 KB Output is correct
68 Correct 453 ms 10720 KB Output is correct
69 Correct 434 ms 10300 KB Output is correct
70 Correct 426 ms 10184 KB Output is correct
71 Correct 447 ms 10100 KB Output is correct
72 Correct 438 ms 10176 KB Output is correct
73 Correct 302 ms 5328 KB Output is correct
74 Correct 427 ms 10408 KB Output is correct
75 Correct 647 ms 20060 KB Output is correct
76 Correct 611 ms 19868 KB Output is correct
77 Correct 134 ms 1172 KB Output is correct
78 Correct 134 ms 1144 KB Output is correct
79 Correct 137 ms 1172 KB Output is correct
80 Correct 142 ms 1160 KB Output is correct
81 Correct 416 ms 9732 KB Output is correct
82 Correct 300 ms 5328 KB Output is correct
83 Correct 236 ms 3584 KB Output is correct
84 Correct 422 ms 10248 KB Output is correct
85 Correct 495 ms 14148 KB Output is correct
86 Correct 518 ms 15308 KB Output is correct
87 Correct 365 ms 7876 KB Output is correct
88 Correct 234 ms 3348 KB Output is correct
# 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 Correct 6 ms 432 KB Output is correct
4 Correct 6 ms 340 KB Output is correct
5 Correct 5 ms 1108 KB Output is correct
6 Correct 8 ms 452 KB Output is correct
7 Correct 9 ms 468 KB Output is correct
8 Correct 6 ms 852 KB Output is correct
9 Correct 6 ms 852 KB Output is correct
10 Correct 4 ms 1108 KB Output is correct
11 Correct 11 ms 448 KB Output is correct
12 Correct 11 ms 340 KB Output is correct
13 Correct 4 ms 1108 KB Output is correct
14 Correct 7 ms 852 KB Output is correct
15 Correct 7 ms 340 KB Output is correct
16 Correct 6 ms 340 KB Output is correct
17 Correct 8 ms 452 KB Output is correct
18 Correct 5 ms 1108 KB Output is correct
19 Correct 7 ms 448 KB Output is correct
20 Correct 6 ms 452 KB Output is correct
21 Correct 445 ms 10260 KB Output is correct
22 Correct 449 ms 10116 KB Output is correct
23 Correct 444 ms 10216 KB Output is correct
24 Correct 504 ms 10960 KB Output is correct
25 Correct 625 ms 19152 KB Output is correct
26 Correct 622 ms 19952 KB Output is correct
27 Correct 449 ms 10316 KB Output is correct
28 Correct 423 ms 10136 KB Output is correct
29 Correct 438 ms 10124 KB Output is correct
30 Correct 588 ms 3784 KB Output is correct
31 Correct 576 ms 5384 KB Output is correct
32 Correct 544 ms 15484 KB Output is correct
33 Correct 143 ms 1188 KB Output is correct
34 Correct 130 ms 1224 KB Output is correct
35 Correct 134 ms 1252 KB Output is correct
36 Correct 130 ms 1196 KB Output is correct
37 Correct 495 ms 15476 KB Output is correct
38 Correct 323 ms 12556 KB Output is correct
39 Correct 395 ms 13596 KB Output is correct
40 Correct 615 ms 19100 KB Output is correct
41 Correct 621 ms 18996 KB Output is correct
42 Correct 518 ms 15312 KB Output is correct
43 Correct 168 ms 1864 KB Output is correct
44 Correct 527 ms 15388 KB Output is correct
45 Correct 463 ms 12780 KB Output is correct
46 Correct 300 ms 6500 KB Output is correct
47 Correct 284 ms 5600 KB Output is correct
48 Correct 255 ms 4160 KB Output is correct
49 Correct 359 ms 10128 KB Output is correct
50 Correct 362 ms 10268 KB Output is correct
51 Correct 368 ms 10140 KB Output is correct
52 Correct 397 ms 10132 KB Output is correct
53 Correct 173 ms 2360 KB Output is correct
54 Correct 384 ms 8088 KB Output is correct
55 Correct 408 ms 11308 KB Output is correct
56 Correct 376 ms 8936 KB Output is correct
57 Correct 139 ms 1308 KB Output is correct
58 Correct 154 ms 1320 KB Output is correct
59 Correct 130 ms 1184 KB Output is correct
60 Correct 135 ms 1132 KB Output is correct
61 Correct 456 ms 11828 KB Output is correct
62 Correct 502 ms 12428 KB Output is correct
63 Correct 619 ms 19280 KB Output is correct
64 Correct 514 ms 15240 KB Output is correct
65 Correct 488 ms 13136 KB Output is correct
66 Correct 278 ms 5456 KB Output is correct
67 Correct 411 ms 10628 KB Output is correct
68 Correct 469 ms 14120 KB Output is correct
69 Correct 134 ms 1156 KB Output is correct
70 Correct 134 ms 1156 KB Output is correct
71 Correct 135 ms 1144 KB Output is correct
72 Correct 137 ms 1164 KB Output is correct
73 Correct 463 ms 16048 KB Output is correct
74 Correct 403 ms 3160 KB Output is correct
75 Correct 558 ms 16732 KB Output is correct
76 Correct 287 ms 4756 KB Output is correct
77 Correct 368 ms 7976 KB Output is correct
78 Correct 536 ms 15956 KB Output is correct
79 Correct 258 ms 3524 KB Output is correct
80 Correct 648 ms 19924 KB Output is correct
81 Correct 482 ms 12708 KB Output is correct
82 Correct 347 ms 7012 KB Output is correct
83 Correct 643 ms 19160 KB Output is correct
84 Correct 512 ms 13708 KB Output is correct
85 Correct 434 ms 10252 KB Output is correct
86 Correct 430 ms 10192 KB Output is correct
87 Correct 442 ms 10184 KB Output is correct
88 Correct 454 ms 10188 KB Output is correct
89 Correct 138 ms 1220 KB Output is correct
90 Correct 138 ms 1180 KB Output is correct
91 Correct 135 ms 1240 KB Output is correct
92 Correct 150 ms 1256 KB Output is correct
93 Correct 597 ms 6144 KB Output is correct
94 Correct 313 ms 2256 KB Output is correct
95 Correct 419 ms 12568 KB Output is correct
96 Correct 639 ms 1512 KB Output is correct
97 Correct 489 ms 12800 KB Output is correct
98 Correct 584 ms 18512 KB Output is correct
99 Correct 618 ms 19940 KB Output is correct
100 Correct 606 ms 18584 KB Output is correct
101 Correct 276 ms 4644 KB Output is correct
102 Correct 259 ms 3748 KB Output is correct
103 Correct 511 ms 14028 KB Output is correct
104 Correct 453 ms 10720 KB Output is correct
105 Correct 434 ms 10300 KB Output is correct
106 Correct 426 ms 10184 KB Output is correct
107 Correct 447 ms 10100 KB Output is correct
108 Correct 438 ms 10176 KB Output is correct
109 Correct 302 ms 5328 KB Output is correct
110 Correct 427 ms 10408 KB Output is correct
111 Correct 647 ms 20060 KB Output is correct
112 Correct 611 ms 19868 KB Output is correct
113 Correct 134 ms 1172 KB Output is correct
114 Correct 134 ms 1144 KB Output is correct
115 Correct 137 ms 1172 KB Output is correct
116 Correct 142 ms 1160 KB Output is correct
117 Correct 416 ms 9732 KB Output is correct
118 Correct 300 ms 5328 KB Output is correct
119 Correct 236 ms 3584 KB Output is correct
120 Correct 422 ms 10248 KB Output is correct
121 Correct 495 ms 14148 KB Output is correct
122 Correct 518 ms 15308 KB Output is correct
123 Correct 365 ms 7876 KB Output is correct
124 Correct 234 ms 3348 KB Output is correct
125 Correct 289 ms 1808 KB Output is correct
126 Correct 282 ms 1800 KB Output is correct
127 Correct 304 ms 1784 KB Output is correct
128 Correct 279 ms 1824 KB Output is correct
129 Correct 269 ms 1744 KB Output is correct
130 Correct 285 ms 1856 KB Output is correct
131 Correct 1415 ms 4276 KB Output is correct
132 Correct 1400 ms 18380 KB Output is correct
133 Correct 1558 ms 27416 KB Output is correct
134 Correct 668 ms 7408 KB Output is correct
135 Correct 1820 ms 30464 KB Output is correct
136 Correct 1065 ms 1360 KB Output is correct
137 Correct 2566 ms 38768 KB Output is correct
138 Correct 1851 ms 28216 KB Output is correct
139 Correct 2262 ms 36012 KB Output is correct
140 Runtime error 2553 ms 41564 KB Memory limit exceeded
141 Halted 0 ms 0 KB -