Submission #758658

# Submission time Handle Problem Language Result Execution time Memory
758658 2023-06-15T05:19:50 Z scanhex Segments (IZhO18_segments) C++17
75 / 100
3431 ms 42172 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;
}

const int N=200200;

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

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

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

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

	rofl2d() {
		all.reserve(N);
		newall.reserve(N);
	}

	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;
	}
} add;

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;
	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:77:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   77 |   for (++x; x <= xs.size(); x = (x | x - 1) + 1)
      |             ~~^~~~~~~~~~~~
segments.cpp:77:40: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
   77 |   for (++x; x <= xs.size(); x = (x | x - 1) + 1)
      |                                      ~~^~~
segments.cpp: In member function 'void static2d::add(int, int)':
segments.cpp:82:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   82 |   for (++x; x <= xs.size(); x = (x | x - 1) + 1)
      |             ~~^~~~~~~~~~~~
segments.cpp:82:40: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
   82 |   for (++x; x <= xs.size(); x = (x | x - 1) + 1)
      |                                      ~~^~~
segments.cpp: In member function 'void static2d::build(const std::vector<std::pair<int, int> >&)':
segments.cpp:93:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   93 |   for (int i = 0; i < xs.size() + 1; ++i)
      |                   ~~^~~~~~~~~~~~~~~
segments.cpp:99:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   99 |   for (int i = 0; i <= xs.size(); ++i)
      |                   ~~^~~~~~~~~~~~
segments.cpp:105:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  105 |   for (int i = 0; i <= xs.size(); ++i)
      |                   ~~^~~~~~~~~~~~
segments.cpp: In member function 'int static2d::get(int, int, int)':
segments.cpp:115:7: warning: unused variable 'xrr' [-Wunused-variable]
  115 |   int xrr = xr;
      |       ^~~
segments.cpp: In member function 'void rofl2d::check_rebuild()':
segments.cpp:154: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]
  154 |      while (ptr < newall.size() && ycmp(newall[ptr], x))
      |             ~~~~^~~~~~~~~~~~~~~
segments.cpp:159: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]
  159 |    while (ptr < newall.size())
      |           ~~~~^~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 4 ms 6560 KB Output is correct
2 Correct 3 ms 6612 KB Output is correct
3 Correct 9 ms 6740 KB Output is correct
4 Correct 8 ms 6764 KB Output is correct
5 Correct 8 ms 7392 KB Output is correct
6 Correct 11 ms 6768 KB Output is correct
7 Correct 9 ms 6840 KB Output is correct
8 Correct 9 ms 7124 KB Output is correct
9 Correct 9 ms 7124 KB Output is correct
10 Correct 7 ms 7380 KB Output is correct
11 Correct 16 ms 6868 KB Output is correct
12 Correct 14 ms 6868 KB Output is correct
13 Correct 7 ms 7280 KB Output is correct
14 Correct 9 ms 7124 KB Output is correct
15 Correct 8 ms 6768 KB Output is correct
16 Correct 8 ms 6752 KB Output is correct
17 Correct 8 ms 6868 KB Output is correct
18 Correct 7 ms 7356 KB Output is correct
19 Correct 8 ms 6868 KB Output is correct
20 Correct 8 ms 6780 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 486 ms 14592 KB Output is correct
2 Correct 480 ms 14516 KB Output is correct
3 Correct 483 ms 14532 KB Output is correct
4 Correct 551 ms 15348 KB Output is correct
5 Correct 771 ms 22296 KB Output is correct
6 Correct 839 ms 22552 KB Output is correct
7 Correct 481 ms 14692 KB Output is correct
8 Correct 475 ms 14700 KB Output is correct
9 Correct 475 ms 14644 KB Output is correct
10 Correct 599 ms 9628 KB Output is correct
11 Correct 553 ms 10948 KB Output is correct
12 Correct 580 ms 18380 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 135 ms 7496 KB Output is correct
2 Correct 135 ms 7484 KB Output is correct
3 Correct 143 ms 7696 KB Output is correct
4 Correct 133 ms 7584 KB Output is correct
5 Correct 579 ms 18296 KB Output is correct
6 Correct 394 ms 16496 KB Output is correct
7 Correct 483 ms 17364 KB Output is correct
8 Correct 762 ms 22080 KB Output is correct
9 Correct 807 ms 21676 KB Output is correct
10 Correct 668 ms 17652 KB Output is correct
11 Correct 179 ms 8088 KB Output is correct
12 Correct 665 ms 17964 KB Output is correct
13 Correct 584 ms 16792 KB Output is correct
14 Correct 358 ms 11740 KB Output is correct
15 Correct 329 ms 11008 KB Output is correct
16 Correct 276 ms 9796 KB Output is correct
17 Correct 416 ms 14636 KB Output is correct
18 Correct 408 ms 14532 KB Output is correct
19 Correct 413 ms 14772 KB Output is correct
20 Correct 412 ms 14608 KB Output is correct
21 Correct 185 ms 8248 KB Output is correct
22 Correct 429 ms 13008 KB Output is correct
23 Correct 533 ms 15644 KB Output is correct
24 Correct 456 ms 13380 KB Output is correct
25 Correct 136 ms 7496 KB Output is correct
26 Correct 132 ms 7556 KB Output is correct
27 Correct 134 ms 7560 KB Output is correct
28 Correct 140 ms 7612 KB Output is correct
29 Correct 574 ms 16048 KB Output is correct
30 Correct 581 ms 16468 KB Output is correct
31 Correct 811 ms 21952 KB Output is correct
32 Correct 668 ms 17632 KB Output is correct
33 Correct 595 ms 16976 KB Output is correct
34 Correct 327 ms 10840 KB Output is correct
35 Correct 518 ms 14912 KB Output is correct
36 Correct 601 ms 17352 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 146 ms 7696 KB Output is correct
2 Correct 136 ms 7580 KB Output is correct
3 Correct 137 ms 7516 KB Output is correct
4 Correct 140 ms 7544 KB Output is correct
5 Correct 595 ms 19504 KB Output is correct
6 Correct 412 ms 9000 KB Output is correct
7 Correct 689 ms 20160 KB Output is correct
8 Correct 280 ms 10392 KB Output is correct
9 Correct 455 ms 13104 KB Output is correct
10 Correct 695 ms 19136 KB Output is correct
11 Correct 267 ms 9496 KB Output is correct
12 Correct 814 ms 22684 KB Output is correct
13 Correct 615 ms 16872 KB Output is correct
14 Correct 419 ms 12320 KB Output is correct
15 Correct 802 ms 21740 KB Output is correct
16 Correct 624 ms 17476 KB Output is correct
17 Correct 484 ms 14740 KB Output is correct
18 Correct 471 ms 14704 KB Output is correct
19 Correct 480 ms 14788 KB Output is correct
20 Correct 484 ms 14788 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 6560 KB Output is correct
2 Correct 3 ms 6612 KB Output is correct
3 Correct 9 ms 6740 KB Output is correct
4 Correct 8 ms 6764 KB Output is correct
5 Correct 8 ms 7392 KB Output is correct
6 Correct 11 ms 6768 KB Output is correct
7 Correct 9 ms 6840 KB Output is correct
8 Correct 9 ms 7124 KB Output is correct
9 Correct 9 ms 7124 KB Output is correct
10 Correct 7 ms 7380 KB Output is correct
11 Correct 16 ms 6868 KB Output is correct
12 Correct 14 ms 6868 KB Output is correct
13 Correct 7 ms 7280 KB Output is correct
14 Correct 9 ms 7124 KB Output is correct
15 Correct 8 ms 6768 KB Output is correct
16 Correct 8 ms 6752 KB Output is correct
17 Correct 8 ms 6868 KB Output is correct
18 Correct 7 ms 7356 KB Output is correct
19 Correct 8 ms 6868 KB Output is correct
20 Correct 8 ms 6780 KB Output is correct
21 Correct 486 ms 14592 KB Output is correct
22 Correct 480 ms 14516 KB Output is correct
23 Correct 483 ms 14532 KB Output is correct
24 Correct 551 ms 15348 KB Output is correct
25 Correct 771 ms 22296 KB Output is correct
26 Correct 839 ms 22552 KB Output is correct
27 Correct 481 ms 14692 KB Output is correct
28 Correct 475 ms 14700 KB Output is correct
29 Correct 475 ms 14644 KB Output is correct
30 Correct 599 ms 9628 KB Output is correct
31 Correct 553 ms 10948 KB Output is correct
32 Correct 580 ms 18380 KB Output is correct
33 Correct 146 ms 7696 KB Output is correct
34 Correct 136 ms 7580 KB Output is correct
35 Correct 137 ms 7516 KB Output is correct
36 Correct 140 ms 7544 KB Output is correct
37 Correct 595 ms 19504 KB Output is correct
38 Correct 412 ms 9000 KB Output is correct
39 Correct 689 ms 20160 KB Output is correct
40 Correct 280 ms 10392 KB Output is correct
41 Correct 455 ms 13104 KB Output is correct
42 Correct 695 ms 19136 KB Output is correct
43 Correct 267 ms 9496 KB Output is correct
44 Correct 814 ms 22684 KB Output is correct
45 Correct 615 ms 16872 KB Output is correct
46 Correct 419 ms 12320 KB Output is correct
47 Correct 802 ms 21740 KB Output is correct
48 Correct 624 ms 17476 KB Output is correct
49 Correct 484 ms 14740 KB Output is correct
50 Correct 471 ms 14704 KB Output is correct
51 Correct 480 ms 14788 KB Output is correct
52 Correct 484 ms 14788 KB Output is correct
53 Correct 142 ms 7644 KB Output is correct
54 Correct 140 ms 7652 KB Output is correct
55 Correct 145 ms 7656 KB Output is correct
56 Correct 138 ms 7628 KB Output is correct
57 Correct 619 ms 11644 KB Output is correct
58 Correct 316 ms 8564 KB Output is correct
59 Correct 496 ms 16540 KB Output is correct
60 Correct 614 ms 7996 KB Output is correct
61 Correct 613 ms 16956 KB Output is correct
62 Correct 762 ms 21592 KB Output is correct
63 Correct 811 ms 22600 KB Output is correct
64 Correct 761 ms 21916 KB Output is correct
65 Correct 322 ms 10340 KB Output is correct
66 Correct 286 ms 9724 KB Output is correct
67 Correct 631 ms 17576 KB Output is correct
68 Correct 542 ms 14964 KB Output is correct
69 Correct 497 ms 14756 KB Output is correct
70 Correct 474 ms 14660 KB Output is correct
71 Correct 496 ms 14676 KB Output is correct
72 Correct 481 ms 14756 KB Output is correct
73 Correct 351 ms 10876 KB Output is correct
74 Correct 539 ms 14892 KB Output is correct
75 Correct 814 ms 22604 KB Output is correct
76 Correct 816 ms 22708 KB Output is correct
77 Correct 138 ms 7624 KB Output is correct
78 Correct 136 ms 7640 KB Output is correct
79 Correct 139 ms 7704 KB Output is correct
80 Correct 138 ms 7572 KB Output is correct
81 Correct 530 ms 14380 KB Output is correct
82 Correct 360 ms 11024 KB Output is correct
83 Correct 260 ms 9172 KB Output is correct
84 Correct 529 ms 14556 KB Output is correct
85 Correct 625 ms 17564 KB Output is correct
86 Correct 672 ms 18488 KB Output is correct
87 Correct 451 ms 12892 KB Output is correct
88 Correct 268 ms 9352 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 6560 KB Output is correct
2 Correct 3 ms 6612 KB Output is correct
3 Correct 9 ms 6740 KB Output is correct
4 Correct 8 ms 6764 KB Output is correct
5 Correct 8 ms 7392 KB Output is correct
6 Correct 11 ms 6768 KB Output is correct
7 Correct 9 ms 6840 KB Output is correct
8 Correct 9 ms 7124 KB Output is correct
9 Correct 9 ms 7124 KB Output is correct
10 Correct 7 ms 7380 KB Output is correct
11 Correct 16 ms 6868 KB Output is correct
12 Correct 14 ms 6868 KB Output is correct
13 Correct 7 ms 7280 KB Output is correct
14 Correct 9 ms 7124 KB Output is correct
15 Correct 8 ms 6768 KB Output is correct
16 Correct 8 ms 6752 KB Output is correct
17 Correct 8 ms 6868 KB Output is correct
18 Correct 7 ms 7356 KB Output is correct
19 Correct 8 ms 6868 KB Output is correct
20 Correct 8 ms 6780 KB Output is correct
21 Correct 486 ms 14592 KB Output is correct
22 Correct 480 ms 14516 KB Output is correct
23 Correct 483 ms 14532 KB Output is correct
24 Correct 551 ms 15348 KB Output is correct
25 Correct 771 ms 22296 KB Output is correct
26 Correct 839 ms 22552 KB Output is correct
27 Correct 481 ms 14692 KB Output is correct
28 Correct 475 ms 14700 KB Output is correct
29 Correct 475 ms 14644 KB Output is correct
30 Correct 599 ms 9628 KB Output is correct
31 Correct 553 ms 10948 KB Output is correct
32 Correct 580 ms 18380 KB Output is correct
33 Correct 135 ms 7496 KB Output is correct
34 Correct 135 ms 7484 KB Output is correct
35 Correct 143 ms 7696 KB Output is correct
36 Correct 133 ms 7584 KB Output is correct
37 Correct 579 ms 18296 KB Output is correct
38 Correct 394 ms 16496 KB Output is correct
39 Correct 483 ms 17364 KB Output is correct
40 Correct 762 ms 22080 KB Output is correct
41 Correct 807 ms 21676 KB Output is correct
42 Correct 668 ms 17652 KB Output is correct
43 Correct 179 ms 8088 KB Output is correct
44 Correct 665 ms 17964 KB Output is correct
45 Correct 584 ms 16792 KB Output is correct
46 Correct 358 ms 11740 KB Output is correct
47 Correct 329 ms 11008 KB Output is correct
48 Correct 276 ms 9796 KB Output is correct
49 Correct 416 ms 14636 KB Output is correct
50 Correct 408 ms 14532 KB Output is correct
51 Correct 413 ms 14772 KB Output is correct
52 Correct 412 ms 14608 KB Output is correct
53 Correct 185 ms 8248 KB Output is correct
54 Correct 429 ms 13008 KB Output is correct
55 Correct 533 ms 15644 KB Output is correct
56 Correct 456 ms 13380 KB Output is correct
57 Correct 136 ms 7496 KB Output is correct
58 Correct 132 ms 7556 KB Output is correct
59 Correct 134 ms 7560 KB Output is correct
60 Correct 140 ms 7612 KB Output is correct
61 Correct 574 ms 16048 KB Output is correct
62 Correct 581 ms 16468 KB Output is correct
63 Correct 811 ms 21952 KB Output is correct
64 Correct 668 ms 17632 KB Output is correct
65 Correct 595 ms 16976 KB Output is correct
66 Correct 327 ms 10840 KB Output is correct
67 Correct 518 ms 14912 KB Output is correct
68 Correct 601 ms 17352 KB Output is correct
69 Correct 146 ms 7696 KB Output is correct
70 Correct 136 ms 7580 KB Output is correct
71 Correct 137 ms 7516 KB Output is correct
72 Correct 140 ms 7544 KB Output is correct
73 Correct 595 ms 19504 KB Output is correct
74 Correct 412 ms 9000 KB Output is correct
75 Correct 689 ms 20160 KB Output is correct
76 Correct 280 ms 10392 KB Output is correct
77 Correct 455 ms 13104 KB Output is correct
78 Correct 695 ms 19136 KB Output is correct
79 Correct 267 ms 9496 KB Output is correct
80 Correct 814 ms 22684 KB Output is correct
81 Correct 615 ms 16872 KB Output is correct
82 Correct 419 ms 12320 KB Output is correct
83 Correct 802 ms 21740 KB Output is correct
84 Correct 624 ms 17476 KB Output is correct
85 Correct 484 ms 14740 KB Output is correct
86 Correct 471 ms 14704 KB Output is correct
87 Correct 480 ms 14788 KB Output is correct
88 Correct 484 ms 14788 KB Output is correct
89 Correct 142 ms 7644 KB Output is correct
90 Correct 140 ms 7652 KB Output is correct
91 Correct 145 ms 7656 KB Output is correct
92 Correct 138 ms 7628 KB Output is correct
93 Correct 619 ms 11644 KB Output is correct
94 Correct 316 ms 8564 KB Output is correct
95 Correct 496 ms 16540 KB Output is correct
96 Correct 614 ms 7996 KB Output is correct
97 Correct 613 ms 16956 KB Output is correct
98 Correct 762 ms 21592 KB Output is correct
99 Correct 811 ms 22600 KB Output is correct
100 Correct 761 ms 21916 KB Output is correct
101 Correct 322 ms 10340 KB Output is correct
102 Correct 286 ms 9724 KB Output is correct
103 Correct 631 ms 17576 KB Output is correct
104 Correct 542 ms 14964 KB Output is correct
105 Correct 497 ms 14756 KB Output is correct
106 Correct 474 ms 14660 KB Output is correct
107 Correct 496 ms 14676 KB Output is correct
108 Correct 481 ms 14756 KB Output is correct
109 Correct 351 ms 10876 KB Output is correct
110 Correct 539 ms 14892 KB Output is correct
111 Correct 814 ms 22604 KB Output is correct
112 Correct 816 ms 22708 KB Output is correct
113 Correct 138 ms 7624 KB Output is correct
114 Correct 136 ms 7640 KB Output is correct
115 Correct 139 ms 7704 KB Output is correct
116 Correct 138 ms 7572 KB Output is correct
117 Correct 530 ms 14380 KB Output is correct
118 Correct 360 ms 11024 KB Output is correct
119 Correct 260 ms 9172 KB Output is correct
120 Correct 529 ms 14556 KB Output is correct
121 Correct 625 ms 17564 KB Output is correct
122 Correct 672 ms 18488 KB Output is correct
123 Correct 451 ms 12892 KB Output is correct
124 Correct 268 ms 9352 KB Output is correct
125 Correct 279 ms 8284 KB Output is correct
126 Correct 287 ms 8420 KB Output is correct
127 Correct 297 ms 8300 KB Output is correct
128 Correct 285 ms 8388 KB Output is correct
129 Correct 274 ms 8464 KB Output is correct
130 Correct 285 ms 8296 KB Output is correct
131 Correct 1416 ms 10256 KB Output is correct
132 Correct 1522 ms 21484 KB Output is correct
133 Correct 1918 ms 28976 KB Output is correct
134 Correct 643 ms 12500 KB Output is correct
135 Correct 2186 ms 30376 KB Output is correct
136 Correct 1053 ms 7732 KB Output is correct
137 Correct 3414 ms 37556 KB Output is correct
138 Correct 2327 ms 26032 KB Output is correct
139 Correct 2990 ms 31712 KB Output is correct
140 Correct 3261 ms 36976 KB Output is correct
141 Correct 2581 ms 28696 KB Output is correct
142 Correct 537 ms 9820 KB Output is correct
143 Correct 1012 ms 13900 KB Output is correct
144 Correct 421 ms 9228 KB Output is correct
145 Correct 3184 ms 35188 KB Output is correct
146 Correct 1541 ms 19112 KB Output is correct
147 Correct 1052 ms 14288 KB Output is correct
148 Correct 964 ms 13632 KB Output is correct
149 Correct 1703 ms 23284 KB Output is correct
150 Correct 1153 ms 24180 KB Output is correct
151 Correct 1707 ms 23276 KB Output is correct
152 Correct 1696 ms 23372 KB Output is correct
153 Correct 1209 ms 24156 KB Output is correct
154 Correct 1711 ms 23296 KB Output is correct
155 Correct 720 ms 11472 KB Output is correct
156 Correct 1115 ms 14916 KB Output is correct
157 Correct 3296 ms 36272 KB Output is correct
158 Correct 3291 ms 36796 KB Output is correct
159 Correct 2399 ms 31236 KB Output is correct
160 Correct 1693 ms 23584 KB Output is correct
161 Correct 300 ms 12220 KB Output is correct
162 Correct 302 ms 12160 KB Output is correct
163 Correct 295 ms 12252 KB Output is correct
164 Correct 313 ms 12264 KB Output is correct
165 Correct 292 ms 12328 KB Output is correct
166 Correct 285 ms 12112 KB Output is correct
167 Runtime error 3431 ms 42172 KB Memory limit exceeded
168 Halted 0 ms 0 KB -