Submission #758653

# Submission time Handle Problem Language Result Execution time Memory
758653 2023-06-15T04:44:00 Z scanhex Segments (IZhO18_segments) C++17
75 / 100
2744 ms 44360 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 {
	vector<int> coords;
	int cnt = 0;
	void clear() {
		vector<int>{}.swap(coords);
		cnt = 0;
	}

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

	void preaddfinish() {
		coords.reserve(cnt);
	}

	void add(int c) {
		coords.push_back(c);
	}

	void finalize() {
	}

	int get(int l, int r) {
		if (l > r) return 0;
		auto itr = upper_bound(coords.begin(), coords.end(), r);
		auto itl = lower_bound(coords.begin(), coords.end(), 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) {
		vector<int>{}.swap(xs);
		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:73:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<static1d>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   73 |   for (++x; x < v.size(); x = (x | x - 1) + 1)
      |             ~~^~~~~~~~~~
segments.cpp:73:38: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
   73 |   for (++x; x < v.size(); x = (x | x - 1) + 1)
      |                                    ~~^~~
segments.cpp: In member function 'void static2d::add(int, int)':
segments.cpp:78:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<static1d>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   78 |   for (++x; x < v.size(); x = (x | x - 1) + 1)
      |             ~~^~~~~~~~~~
segments.cpp:78:38: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
   78 |   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:98:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<static1d>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   98 |   for (int i = 0; i < v.size(); ++i)
      |                   ~~^~~~~~~~~~
segments.cpp:104:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<static1d>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  104 |   for (int i = 0; i < v.size(); ++i)
      |                   ~~^~~~~~~~~~
segments.cpp: In member function 'int static2d::get(int, int, int)':
segments.cpp:114:7: warning: unused variable 'xrr' [-Wunused-variable]
  114 |   int xrr = xr;
      |       ^~~
segments.cpp: In member function 'void rofl2d::check_rebuild()':
segments.cpp:148: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]
  148 |      while (ptr < newall.size() && ycmp(newall[ptr], x))
      |             ~~~~^~~~~~~~~~~~~~~
segments.cpp:153: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]
  153 |    while (ptr < newall.size())
      |           ~~~~^~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 6 ms 340 KB Output is correct
4 Correct 6 ms 352 KB Output is correct
5 Correct 5 ms 1236 KB Output is correct
6 Correct 8 ms 460 KB Output is correct
7 Correct 6 ms 432 KB Output is correct
8 Correct 6 ms 980 KB Output is correct
9 Correct 7 ms 1052 KB Output is correct
10 Correct 4 ms 1236 KB Output is correct
11 Correct 11 ms 440 KB Output is correct
12 Correct 11 ms 340 KB Output is correct
13 Correct 4 ms 1236 KB Output is correct
14 Correct 7 ms 852 KB Output is correct
15 Correct 6 ms 340 KB Output is correct
16 Correct 6 ms 340 KB Output is correct
17 Correct 6 ms 376 KB Output is correct
18 Correct 4 ms 1236 KB Output is correct
19 Correct 6 ms 448 KB Output is correct
20 Correct 6 ms 468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 443 ms 11700 KB Output is correct
2 Correct 454 ms 11652 KB Output is correct
3 Correct 495 ms 11840 KB Output is correct
4 Correct 545 ms 12676 KB Output is correct
5 Correct 620 ms 22096 KB Output is correct
6 Correct 663 ms 23148 KB Output is correct
7 Correct 477 ms 11736 KB Output is correct
8 Correct 443 ms 11724 KB Output is correct
9 Correct 454 ms 11784 KB Output is correct
10 Correct 597 ms 4332 KB Output is correct
11 Correct 538 ms 6116 KB Output is correct
12 Correct 500 ms 19212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 157 ms 1164 KB Output is correct
2 Correct 129 ms 1140 KB Output is correct
3 Correct 140 ms 1232 KB Output is correct
4 Correct 134 ms 1256 KB Output is correct
5 Correct 504 ms 19180 KB Output is correct
6 Correct 340 ms 14388 KB Output is correct
7 Correct 443 ms 15548 KB Output is correct
8 Correct 618 ms 22144 KB Output is correct
9 Correct 652 ms 21688 KB Output is correct
10 Correct 527 ms 17704 KB Output is correct
11 Correct 176 ms 2044 KB Output is correct
12 Correct 555 ms 19092 KB Output is correct
13 Correct 493 ms 14472 KB Output is correct
14 Correct 354 ms 7356 KB Output is correct
15 Correct 298 ms 6484 KB Output is correct
16 Correct 237 ms 4952 KB Output is correct
17 Correct 383 ms 11804 KB Output is correct
18 Correct 373 ms 11780 KB Output is correct
19 Correct 379 ms 11764 KB Output is correct
20 Correct 386 ms 11684 KB Output is correct
21 Correct 177 ms 2376 KB Output is correct
22 Correct 359 ms 9824 KB Output is correct
23 Correct 448 ms 12608 KB Output is correct
24 Correct 394 ms 10040 KB Output is correct
25 Correct 132 ms 1192 KB Output is correct
26 Correct 128 ms 1332 KB Output is correct
27 Correct 136 ms 1392 KB Output is correct
28 Correct 129 ms 1204 KB Output is correct
29 Correct 467 ms 13628 KB Output is correct
30 Correct 496 ms 13908 KB Output is correct
31 Correct 651 ms 22648 KB Output is correct
32 Correct 542 ms 17588 KB Output is correct
33 Correct 493 ms 14608 KB Output is correct
34 Correct 276 ms 6248 KB Output is correct
35 Correct 457 ms 12032 KB Output is correct
36 Correct 505 ms 15992 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 135 ms 1196 KB Output is correct
2 Correct 146 ms 1136 KB Output is correct
3 Correct 134 ms 1180 KB Output is correct
4 Correct 142 ms 1208 KB Output is correct
5 Correct 540 ms 19220 KB Output is correct
6 Correct 418 ms 3476 KB Output is correct
7 Correct 580 ms 19652 KB Output is correct
8 Correct 283 ms 5476 KB Output is correct
9 Correct 385 ms 9492 KB Output is correct
10 Correct 574 ms 19232 KB Output is correct
11 Correct 243 ms 3840 KB Output is correct
12 Correct 652 ms 23060 KB Output is correct
13 Correct 505 ms 14432 KB Output is correct
14 Correct 354 ms 8100 KB Output is correct
15 Correct 658 ms 21612 KB Output is correct
16 Correct 556 ms 15340 KB Output is correct
17 Correct 449 ms 11700 KB Output is correct
18 Correct 443 ms 11844 KB Output is correct
19 Correct 440 ms 11724 KB Output is correct
20 Correct 454 ms 11744 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 6 ms 340 KB Output is correct
4 Correct 6 ms 352 KB Output is correct
5 Correct 5 ms 1236 KB Output is correct
6 Correct 8 ms 460 KB Output is correct
7 Correct 6 ms 432 KB Output is correct
8 Correct 6 ms 980 KB Output is correct
9 Correct 7 ms 1052 KB Output is correct
10 Correct 4 ms 1236 KB Output is correct
11 Correct 11 ms 440 KB Output is correct
12 Correct 11 ms 340 KB Output is correct
13 Correct 4 ms 1236 KB Output is correct
14 Correct 7 ms 852 KB Output is correct
15 Correct 6 ms 340 KB Output is correct
16 Correct 6 ms 340 KB Output is correct
17 Correct 6 ms 376 KB Output is correct
18 Correct 4 ms 1236 KB Output is correct
19 Correct 6 ms 448 KB Output is correct
20 Correct 6 ms 468 KB Output is correct
21 Correct 443 ms 11700 KB Output is correct
22 Correct 454 ms 11652 KB Output is correct
23 Correct 495 ms 11840 KB Output is correct
24 Correct 545 ms 12676 KB Output is correct
25 Correct 620 ms 22096 KB Output is correct
26 Correct 663 ms 23148 KB Output is correct
27 Correct 477 ms 11736 KB Output is correct
28 Correct 443 ms 11724 KB Output is correct
29 Correct 454 ms 11784 KB Output is correct
30 Correct 597 ms 4332 KB Output is correct
31 Correct 538 ms 6116 KB Output is correct
32 Correct 500 ms 19212 KB Output is correct
33 Correct 135 ms 1196 KB Output is correct
34 Correct 146 ms 1136 KB Output is correct
35 Correct 134 ms 1180 KB Output is correct
36 Correct 142 ms 1208 KB Output is correct
37 Correct 540 ms 19220 KB Output is correct
38 Correct 418 ms 3476 KB Output is correct
39 Correct 580 ms 19652 KB Output is correct
40 Correct 283 ms 5476 KB Output is correct
41 Correct 385 ms 9492 KB Output is correct
42 Correct 574 ms 19232 KB Output is correct
43 Correct 243 ms 3840 KB Output is correct
44 Correct 652 ms 23060 KB Output is correct
45 Correct 505 ms 14432 KB Output is correct
46 Correct 354 ms 8100 KB Output is correct
47 Correct 658 ms 21612 KB Output is correct
48 Correct 556 ms 15340 KB Output is correct
49 Correct 449 ms 11700 KB Output is correct
50 Correct 443 ms 11844 KB Output is correct
51 Correct 440 ms 11724 KB Output is correct
52 Correct 454 ms 11744 KB Output is correct
53 Correct 141 ms 1252 KB Output is correct
54 Correct 138 ms 1160 KB Output is correct
55 Correct 133 ms 1152 KB Output is correct
56 Correct 134 ms 1240 KB Output is correct
57 Correct 630 ms 7112 KB Output is correct
58 Correct 319 ms 2572 KB Output is correct
59 Correct 424 ms 14368 KB Output is correct
60 Correct 623 ms 1704 KB Output is correct
61 Correct 509 ms 14388 KB Output is correct
62 Correct 605 ms 21244 KB Output is correct
63 Correct 699 ms 22788 KB Output is correct
64 Correct 624 ms 21388 KB Output is correct
65 Correct 296 ms 5376 KB Output is correct
66 Correct 258 ms 4296 KB Output is correct
67 Correct 520 ms 16016 KB Output is correct
68 Correct 480 ms 11916 KB Output is correct
69 Correct 468 ms 11832 KB Output is correct
70 Correct 438 ms 11748 KB Output is correct
71 Correct 450 ms 11648 KB Output is correct
72 Correct 459 ms 11700 KB Output is correct
73 Correct 307 ms 6112 KB Output is correct
74 Correct 451 ms 11492 KB Output is correct
75 Correct 664 ms 23092 KB Output is correct
76 Correct 645 ms 22860 KB Output is correct
77 Correct 154 ms 1164 KB Output is correct
78 Correct 135 ms 1128 KB Output is correct
79 Correct 138 ms 1140 KB Output is correct
80 Correct 151 ms 1156 KB Output is correct
81 Correct 469 ms 11244 KB Output is correct
82 Correct 304 ms 6056 KB Output is correct
83 Correct 242 ms 3660 KB Output is correct
84 Correct 438 ms 11324 KB Output is correct
85 Correct 512 ms 15640 KB Output is correct
86 Correct 533 ms 18980 KB Output is correct
87 Correct 386 ms 9632 KB Output is correct
88 Correct 238 ms 3860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 6 ms 340 KB Output is correct
4 Correct 6 ms 352 KB Output is correct
5 Correct 5 ms 1236 KB Output is correct
6 Correct 8 ms 460 KB Output is correct
7 Correct 6 ms 432 KB Output is correct
8 Correct 6 ms 980 KB Output is correct
9 Correct 7 ms 1052 KB Output is correct
10 Correct 4 ms 1236 KB Output is correct
11 Correct 11 ms 440 KB Output is correct
12 Correct 11 ms 340 KB Output is correct
13 Correct 4 ms 1236 KB Output is correct
14 Correct 7 ms 852 KB Output is correct
15 Correct 6 ms 340 KB Output is correct
16 Correct 6 ms 340 KB Output is correct
17 Correct 6 ms 376 KB Output is correct
18 Correct 4 ms 1236 KB Output is correct
19 Correct 6 ms 448 KB Output is correct
20 Correct 6 ms 468 KB Output is correct
21 Correct 443 ms 11700 KB Output is correct
22 Correct 454 ms 11652 KB Output is correct
23 Correct 495 ms 11840 KB Output is correct
24 Correct 545 ms 12676 KB Output is correct
25 Correct 620 ms 22096 KB Output is correct
26 Correct 663 ms 23148 KB Output is correct
27 Correct 477 ms 11736 KB Output is correct
28 Correct 443 ms 11724 KB Output is correct
29 Correct 454 ms 11784 KB Output is correct
30 Correct 597 ms 4332 KB Output is correct
31 Correct 538 ms 6116 KB Output is correct
32 Correct 500 ms 19212 KB Output is correct
33 Correct 157 ms 1164 KB Output is correct
34 Correct 129 ms 1140 KB Output is correct
35 Correct 140 ms 1232 KB Output is correct
36 Correct 134 ms 1256 KB Output is correct
37 Correct 504 ms 19180 KB Output is correct
38 Correct 340 ms 14388 KB Output is correct
39 Correct 443 ms 15548 KB Output is correct
40 Correct 618 ms 22144 KB Output is correct
41 Correct 652 ms 21688 KB Output is correct
42 Correct 527 ms 17704 KB Output is correct
43 Correct 176 ms 2044 KB Output is correct
44 Correct 555 ms 19092 KB Output is correct
45 Correct 493 ms 14472 KB Output is correct
46 Correct 354 ms 7356 KB Output is correct
47 Correct 298 ms 6484 KB Output is correct
48 Correct 237 ms 4952 KB Output is correct
49 Correct 383 ms 11804 KB Output is correct
50 Correct 373 ms 11780 KB Output is correct
51 Correct 379 ms 11764 KB Output is correct
52 Correct 386 ms 11684 KB Output is correct
53 Correct 177 ms 2376 KB Output is correct
54 Correct 359 ms 9824 KB Output is correct
55 Correct 448 ms 12608 KB Output is correct
56 Correct 394 ms 10040 KB Output is correct
57 Correct 132 ms 1192 KB Output is correct
58 Correct 128 ms 1332 KB Output is correct
59 Correct 136 ms 1392 KB Output is correct
60 Correct 129 ms 1204 KB Output is correct
61 Correct 467 ms 13628 KB Output is correct
62 Correct 496 ms 13908 KB Output is correct
63 Correct 651 ms 22648 KB Output is correct
64 Correct 542 ms 17588 KB Output is correct
65 Correct 493 ms 14608 KB Output is correct
66 Correct 276 ms 6248 KB Output is correct
67 Correct 457 ms 12032 KB Output is correct
68 Correct 505 ms 15992 KB Output is correct
69 Correct 135 ms 1196 KB Output is correct
70 Correct 146 ms 1136 KB Output is correct
71 Correct 134 ms 1180 KB Output is correct
72 Correct 142 ms 1208 KB Output is correct
73 Correct 540 ms 19220 KB Output is correct
74 Correct 418 ms 3476 KB Output is correct
75 Correct 580 ms 19652 KB Output is correct
76 Correct 283 ms 5476 KB Output is correct
77 Correct 385 ms 9492 KB Output is correct
78 Correct 574 ms 19232 KB Output is correct
79 Correct 243 ms 3840 KB Output is correct
80 Correct 652 ms 23060 KB Output is correct
81 Correct 505 ms 14432 KB Output is correct
82 Correct 354 ms 8100 KB Output is correct
83 Correct 658 ms 21612 KB Output is correct
84 Correct 556 ms 15340 KB Output is correct
85 Correct 449 ms 11700 KB Output is correct
86 Correct 443 ms 11844 KB Output is correct
87 Correct 440 ms 11724 KB Output is correct
88 Correct 454 ms 11744 KB Output is correct
89 Correct 141 ms 1252 KB Output is correct
90 Correct 138 ms 1160 KB Output is correct
91 Correct 133 ms 1152 KB Output is correct
92 Correct 134 ms 1240 KB Output is correct
93 Correct 630 ms 7112 KB Output is correct
94 Correct 319 ms 2572 KB Output is correct
95 Correct 424 ms 14368 KB Output is correct
96 Correct 623 ms 1704 KB Output is correct
97 Correct 509 ms 14388 KB Output is correct
98 Correct 605 ms 21244 KB Output is correct
99 Correct 699 ms 22788 KB Output is correct
100 Correct 624 ms 21388 KB Output is correct
101 Correct 296 ms 5376 KB Output is correct
102 Correct 258 ms 4296 KB Output is correct
103 Correct 520 ms 16016 KB Output is correct
104 Correct 480 ms 11916 KB Output is correct
105 Correct 468 ms 11832 KB Output is correct
106 Correct 438 ms 11748 KB Output is correct
107 Correct 450 ms 11648 KB Output is correct
108 Correct 459 ms 11700 KB Output is correct
109 Correct 307 ms 6112 KB Output is correct
110 Correct 451 ms 11492 KB Output is correct
111 Correct 664 ms 23092 KB Output is correct
112 Correct 645 ms 22860 KB Output is correct
113 Correct 154 ms 1164 KB Output is correct
114 Correct 135 ms 1128 KB Output is correct
115 Correct 138 ms 1140 KB Output is correct
116 Correct 151 ms 1156 KB Output is correct
117 Correct 469 ms 11244 KB Output is correct
118 Correct 304 ms 6056 KB Output is correct
119 Correct 242 ms 3660 KB Output is correct
120 Correct 438 ms 11324 KB Output is correct
121 Correct 512 ms 15640 KB Output is correct
122 Correct 533 ms 18980 KB Output is correct
123 Correct 386 ms 9632 KB Output is correct
124 Correct 238 ms 3860 KB Output is correct
125 Correct 282 ms 1868 KB Output is correct
126 Correct 286 ms 1716 KB Output is correct
127 Correct 292 ms 1940 KB Output is correct
128 Correct 279 ms 1816 KB Output is correct
129 Correct 274 ms 1760 KB Output is correct
130 Correct 296 ms 1848 KB Output is correct
131 Correct 1441 ms 4816 KB Output is correct
132 Correct 1414 ms 21060 KB Output is correct
133 Correct 1636 ms 30908 KB Output is correct
134 Correct 640 ms 8360 KB Output is correct
135 Correct 1847 ms 38492 KB Output is correct
136 Correct 1042 ms 1280 KB Output is correct
137 Runtime error 2744 ms 44360 KB Memory limit exceeded
138 Halted 0 ms 0 KB -