QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#660863#9424. Stop the Castle 2LateRegistration#AC ✓273ms67664kbC++206.6kb2024-10-20 13:43:522024-10-20 13:43:52

Judging History

This is the latest submission verdict.

  • [2024-10-20 13:43:52]
  • Judged
  • Verdict: AC
  • Time: 273ms
  • Memory: 67664kb
  • [2024-10-20 13:43:52]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;

template <class T> struct simple_queue {
	vector<T> payload;
	int pos = 0;
	void reserve(int n) { payload.reserve(n); }
	int size() const { return int(payload.size()) - pos; }
	bool empty() const { return pos == int(payload.size()); }
	void push(const T& t) { payload.push_back(t); }
	T& front() { return payload[pos]; }
	void clear() {
		payload.clear();
		pos = 0;
	}
	void pop() { pos++; }
};

template <class Cap> struct mf_graph {
  public:
	mf_graph() : _n(0) {}
	explicit mf_graph(int n) : _n(n), g(n) {}

	int add_edge(int from, int to, Cap cap) {
		assert(0 <= from && from < _n);
		assert(0 <= to && to < _n);
		assert(0 <= cap);
		int m = int(pos.size());
		pos.push_back({from, int(g[from].size())});
		int from_id = int(g[from].size());
		int to_id = int(g[to].size());
		if (from == to) to_id++;
		g[from].push_back(_edge{to, to_id, cap});
		g[to].push_back(_edge{from, from_id, 0});
		return m;
	}

	struct edge {
		int from, to;
		Cap cap, flow;
	};

	edge get_edge(int i) {
		int m = int(pos.size());
		assert(0 <= i && i < m);
		auto _e = g[pos[i].first][pos[i].second];
		auto _re = g[_e.to][_e.rev];
		return edge{pos[i].first, _e.to, _e.cap + _re.cap, _re.cap};
	}
	vector<edge> edges() {
		int m = int(pos.size());
		vector<edge> result;
		for (int i = 0; i < m; i++) {
			result.push_back(get_edge(i));
		}
		return result;
	}
	void change_edge(int i, Cap new_cap, Cap new_flow) {
		int m = int(pos.size());
		assert(0 <= i && i < m);
		assert(0 <= new_flow && new_flow <= new_cap);
		auto& _e = g[pos[i].first][pos[i].second];
		auto& _re = g[_e.to][_e.rev];
		_e.cap = new_cap - new_flow;
		_re.cap = new_flow;
	}

	Cap flow(int s, int t) {
		return flow(s, t, numeric_limits<Cap>::max());
	}
	Cap flow(int s, int t, Cap flow_limit) {
		assert(0 <= s && s < _n);
		assert(0 <= t && t < _n);
		assert(s != t);

		vector<int> level(_n), iter(_n);
		simple_queue<int> que;

		auto bfs = [&]() {
			fill(level.begin(), level.end(), -1);
			level[s] = 0;
			que.clear();
			que.push(s);
			while (!que.empty()) {
				int v = que.front();
				que.pop();
				for (auto e : g[v]) {
					if (e.cap == 0 || level[e.to] >= 0) continue;
					level[e.to] = level[v] + 1;
					if (e.to == t) return;
					que.push(e.to);
				}
			}
		};
		auto dfs = [&](auto self, int v, Cap up) {
			if (v == s) return up;
			Cap res = 0;
			int level_v = level[v];
			for (int& i = iter[v]; i < int(g[v].size()); i++) {
				_edge& e = g[v][i];
				if (level_v <= level[e.to] || g[e.to][e.rev].cap == 0) continue;
				Cap d = self(self, e.to, min(up - res, g[e.to][e.rev].cap));
				if (d <= 0) continue;
				g[v][i].cap += d;
				g[e.to][e.rev].cap -= d;
				res += d;
				if (res == up) return res;
			}
			level[v] = _n;
			return res;
		};

		Cap flow = 0;
		while (flow < flow_limit) {
			bfs();
			if (level[t] == -1) break;
			fill(iter.begin(), iter.end(), 0);
			Cap f = dfs(dfs, t, flow_limit - flow);
			if (!f) break;
			flow += f;
		}
		return flow;
	}

	vector<bool> min_cut(int s) {
		vector<bool> visited(_n);
		simple_queue<int> que;
		que.push(s);
		while (!que.empty()) {
			int p = que.front();
			que.pop();
			visited[p] = true;
			for (auto e : g[p]) {
				if (e.cap && !visited[e.to]) {
					visited[e.to] = true;
					que.push(e.to);
				}
			}
		}
		return visited;
	}

  private:
	int _n;
	struct _edge {
		int to, rev;
		Cap cap;
	};
	vector<pair<int, int>> pos;
	vector<vector<_edge>> g;
};

void solve() {
	int n, m, k;
	cin >> n >> m >> k;
	map<int, vector<array<int, 3>>> row, col;
	while (n--) {
		int r, c;
		cin >> r >> c;
		row[r].push_back({c, -1, -1});
		col[c].push_back({r, -1, -1});
	}
	for (int i = 0; i < m; i++) {
		int r, c;
		cin >> r >> c;
		row[r].push_back({c, i, i});
		col[c].push_back({r, i, i});
	}
	for (auto &[_, v] : row) {
		sort(v.begin(), v.end());
		for (int i = 1; i < v.size(); i++) {
			if (v[i][2] != -1 && v[i - 1][2] != -1) {
				v[i][2] = v[i - 1][2];
			}
		}
		int lhs = v[0][2], rhs = v.back()[2];
		for (int i = v.size() - 1; i >= 0; i--) {
			if (v[i][2] == lhs || v[i][2] == rhs) {
				v[i][2] = -1;
			}
		}
	}
	for (auto &[_, v] : col) {
		sort(v.begin(), v.end());
		for (int i = 1; i < v.size(); i++) {
			if (v[i][2] != -1 && v[i - 1][2] != -1) {
				v[i][2] = v[i - 1][2];
			}
		}
		int lhs = v[0][2], rhs = v.back()[2];
		for (int i = v.size() - 1; i >= 0; i--) {
			if (v[i][2] == lhs || v[i][2] == rhs) {
				v[i][2] = -1;
			}
		}
	}
	mf_graph<int> g(2 * m + 2);
	int s = 2 * m, t = s + 1;
	for (int i = 0; i < m; i++) {
		g.add_edge(s, i, 1);
		g.add_edge(i + m, t, 1);
	}
	vector<int> edge_id(m, -1);
	for (auto [r, v] : row) {
		for (auto [c, id, lst] : v) {
			if (id != -1 && lst != -1) {
				auto it = lower_bound(col[c].begin(), col[c].end(), array{r, -1, -1});
				if (it->at(2) != -1) {
					edge_id[id] = g.add_edge(lst, it->at(2) + m, 1);
				}
			}
		}
	}
	g.flow(s, t);
	vector<int> del;
	vector<bool> mark(m);
	for (int i = 0; i < m; i++) {
		if (edge_id[i] != -1 && g.get_edge(edge_id[i]).flow) {
			mark[i] = 1;
		}
	}
	for (const auto &foo : {row, col}) {
		for (auto &[_, v] : foo) {
			for (int i = 0; i < v.size(); i++) {
				if (v[i][1] != -1 && v[i][1] == v[i][2]) {
					bool flag = 0;
					for (int j = i; j < v.size() && v[i][2] == v[j][2]; j++) {
						if (mark[v[j][1]]) {
							flag = 1;
						}
					}
					if (!flag) {
						del.push_back(v[i][1]);
					}
				}
			}
		}
	}
	sort(del.begin(), del.end());
	vector<int> ndel;
	for (int i = 0; i < m; i++) {
		if (!mark[i] && !binary_search(del.begin(), del.end(), i)) {
			ndel.push_back(i);
		}
	}
	del.insert(del.begin(), ndel.begin(), ndel.end());
	for (int i = 0; i < m; i++) {
		if (mark[i]) {
			del.push_back(i);
		}
	}
	mark.assign(m, 0);
	for (int i = 0; i < k; i++) {
		mark[del[i]] = 1;
	}
	int ans = 0;
	for (auto [_, v] : row) {
		int lst = 0;
		for (auto [foo, id, bar] : v) {
			if (id == -1) {
				if (lst == -1) {
					ans++;
				}
				lst = -1;
			} else if (!mark[id]) {
				lst = id;
			}
		}
	}
	for (auto [_, v] : col) {
		int lst = 0;
		for (auto [foo, id, bar] : v) {
			if (id == -1) {
				if (lst == -1) {
					ans++;
				}
				lst = -1;
			} else if (!mark[id]) {
				lst = id;
			}
		}
	}
	cout << ans << "\n";
	for (int i = 0; i < k; i++) {
		cout << del[i] + 1 << " \n"[i + 1 == k];
	}
}

int main() {
	ios::sync_with_stdio(0), cin.tie(0);
	int T;
	cin >> T;
	while (T--) {
		solve();
	}
	return 0;
}

这程序好像有点Bug,我给组数据试试?

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3748kb

input:

3
8 6 4
1 3
2 1
2 6
4 1
4 7
6 1
6 3
6 6
2 3
3 1
4 3
4 6
5 2
6 4
3 2 1
10 12
10 10
10 11
1 4
1 5
1 3 2
1 1
2 1
2 2
2 3

output:

4
3 5 2 6
2
1
0
1 2

result:

ok ok 3 cases (3 test cases)

Test #2:

score: 0
Accepted
time: 108ms
memory: 10636kb

input:

1224
11 17 14
7 3
4 2
8 13
3 15
3 4
5 11
10 2
3 3
8 6
7 11
2 3
10 4
1 3
12 1
2 5
11 9
11 6
11 10
8 15
1 5
9 14
4 11
1 6
10 7
7 6
11 4
8 4
1 11
18 3 2
14 8
2 14
13 13
9 12
14 12
5 6
8 1
10 5
8 6
8 9
6 6
7 5
12 11
6 11
13 5
1 10
7 6
14 5
6 15
2 4
11 1
1 6 4
14 14
13 9
9 3
10 12
7 5
8 13
9 14
1 9 8
4 9...

output:

7
1 2 3 4 5 6 7 8 9 10 11 12 13 15
15
1 2
0
1 2 3 4
0
1 2 3 4 5 6 7 8
11
1 3
8
2 3 1
0
1 2 3 4 5 6 7 8 9 10 11 12
1
1 2 3 4 5 6 7
8
1 2 3
1
1 2 3 4 5 6 7 8
7
1 2
10
1 2 3
1
1 2 3 4 5 6 7 8 10 11 12
0
1
1
1 2
0
1 2 3
7
1 2 3 4 6
2
2 4 5 6 7
4
1 2 3 4 5 6
1
1
1
1 2 3 4 5 6
16
2 5 1 3 4
7
1
0
1 2 3 4
1...

result:

ok ok 1224 cases (1224 test cases)

Test #3:

score: 0
Accepted
time: 145ms
memory: 32488kb

input:

1
86289 95092 40401
911 152
1 270
135 731
347 451
283 224
338 348
166 346
12 385
590 763
939 176
232 405
122 946
397 576
795 823
546 392
33 718
444 598
954 852
185 662
732 539
172 681
386 148
76 495
163 323
711 201
278 363
531 275
66 122
823 983
234 792
102 188
985 423
804 712
419 636
318 331
693 68...

output:

81531
1 4 7 8 11 12 20 24 25 31 34 35 36 41 45 46 48 50 51 52 53 56 57 61 66 68 77 78 84 92 93 97 98 101 106 108 109 113 116 117 119 120 122 123 125 126 131 133 135 137 140 142 144 147 149 151 152 154 155 157 158 161 163 166 169 170 174 177 182 183 184 186 187 188 192 193 196 199 206 208 209 210 214...

result:

ok ok 1 cases (1 test case)

Test #4:

score: 0
Accepted
time: 266ms
memory: 63268kb

input:

1
99057 99722 73893
190482185 274379837
466851670 641324039
993028302 128875937
102891466 286559847
526771097 794238060
565736409 328262657
190329865 598878250
790626887 595298790
308031819 470646878
341575785 374318107
257299536 280924175
64420619 591124604
323023069 811512407
428956686 719615923
2...

output:

82045
1 2 6 8 9 10 11 13 15 16 18 19 20 21 22 24 25 28 29 30 33 34 35 36 37 39 41 43 45 49 50 51 52 54 55 56 59 60 61 62 63 65 67 68 69 70 71 72 75 79 80 81 82 83 87 90 91 93 94 95 96 99 100 101 102 104 105 106 107 109 110 111 112 113 114 118 119 120 124 128 129 130 131 133 135 136 137 138 142 143 1...

result:

ok ok 1 cases (1 test case)

Test #5:

score: 0
Accepted
time: 273ms
memory: 44180kb

input:

1
100000 99990 27662
913840909 999962982
690565691 31053
780601566 31053
54745498 31053
5383 859704869
538124857 999962982
5383 66851413
1444277 31053
119603839 999962982
999833258 543197820
999833258 349576387
999833258 759855830
999833258 124692224
266093388 999962982
5383 100041707
999833258 2843...

output:

100891
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 24 25 26 27 30 31 33 34 36 37 38 42 43 44 45 47 48 50 51 53 54 55 56 57 58 59 62 64 67 69 70 71 72 73 74 76 78 79 80 81 83 84 85 86 87 88 89 91 92 93 95 96 99 100 101 102 103 104 105 106 107 108 111 112 113 114 116 118 119 120 121 122 124 126 ...

result:

ok ok 1 cases (1 test case)

Test #6:

score: 0
Accepted
time: 88ms
memory: 30424kb

input:

1
100000 49997 21428
9380 4333
9380 999999628
49202 4333
49202 999999628
50841 4333
50841 999999628
77418 4333
77418 999999628
95722 4333
95722 999999628
144002 4333
144002 999999628
234359 4333
234359 999999628
268942 4333
268942 999999628
288956 4333
288956 999999628
415094 4333
415094 999999628
4...

output:

100000
2 7 8 10 11 17 19 22 24 26 36 37 38 42 43 49 53 54 55 60 61 62 63 64 65 66 67 68 69 71 74 81 84 85 88 89 90 93 94 96 97 98 100 101 102 105 110 111 114 115 117 118 119 120 121 123 125 126 127 128 129 131 132 136 137 140 143 149 150 151 156 157 159 160 161 163 167 168 169 171 173 174 175 178 17...

result:

ok ok 1 cases (1 test case)

Test #7:

score: 0
Accepted
time: 254ms
memory: 67664kb

input:

1
100000 100000 76259
931427170 7
367311884 7
646435086 7
925372747 7
371054451 7
284185575 7
695090232 7
889183241 7
615617158 7
44230096 7
293281406 7
758261641 7
685549291 7
679471071 7
723138327 7
901136691 7
49281635 7
256352978 7
320188290 7
78730802 7
788131872 7
234735044 7
664906524 7
79430...

output:

76258
2 3 4 5 6 7 9 10 11 12 13 15 16 17 18 20 21 22 24 28 30 31 38 39 40 41 42 43 47 48 49 50 51 52 53 56 57 58 61 62 63 64 65 68 69 71 72 73 75 76 79 80 81 84 86 87 88 90 94 96 99 104 108 109 111 112 114 116 118 119 123 126 127 128 130 131 133 136 137 139 140 141 143 144 145 146 147 148 151 152 15...

result:

ok ok 1 cases (1 test case)

Test #8:

score: 0
Accepted
time: 71ms
memory: 30484kb

input:

1
100000 49999 24999
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

99996
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 10...

result:

ok ok 1 cases (1 test case)

Test #9:

score: 0
Accepted
time: 105ms
memory: 15212kb

input:

556
16 6 3
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
1 2
1000000000 2
1 3
1000000000 3
1 4
1000000000 4
1 5
1000000000 5
1 6
1000000000 6
2 3
3 3
3 2
4 2
2 4
4 4
32 12 6
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 ...

output:

14
2 4 5
32
2 4 5 10 11 12
31
1 2 4 9 10 12 13 15
8
1
13
1 3
19
4 5 7 8 9
11
1 5 6
20
3 5 6
15
3 4 6 7
33
4 6 8 9 10 12 14
31
4 6 7 9 11 12 13 16
19
2 3 4 7 8
31
2 5 6 9 10
15
1 2 6 7
28
1 2 3 5 9
11
1
19
2 3 5 7 10
23
2 3 4 7 8 11
34
2 3 4 5 6 8 9 15
31
3 5 7 8 9 12 13 14
29
2 4 5 6 7 12
17
1 2 5
1...

result:

ok ok 556 cases (556 test cases)

Test #10:

score: 0
Accepted
time: 273ms
memory: 31944kb

input:

1
100000 50000 25000
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

99996
2 3 6 9 12 13 16 17 21 23 24 26 27 29 31 32 35 37 40 42 44 49 50 52 53 58 59 62 66 67 69 70 71 72 73 74 75 76 77 79 80 81 83 84 86 87 92 93 95 96 98 99 100 101 105 106 107 108 110 112 116 120 123 125 126 127 128 131 133 134 136 139 140 142 144 150 154 161 163 166 167 168 169 171 172 175 181 18...

result:

ok ok 1 cases (1 test case)

Test #11:

score: 0
Accepted
time: 48ms
memory: 14144kb

input:

556
32 15 7
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
1 2
1000000000 2
1 3
1000000000 3
1 4
1000000000 4
1 5
1000000000 5
1 6
1000000000 6
1 7
1000000000 7
1 8
1000000000 8
1 9
1000000000 9
7 6
4 3
5 4
2 2
...

output:

28
1 2 3 7 8 10 15
11
1 4
20
3 4
23
4 7 8 9 10
26
1 2 6 7 8
17
1
10
2
31
2 3 6 8
14
1
31
2 3 4 5 7 11 14
34
2 3 4 5 7 8 15
16
3
32
1 2 6 7 8
29
3 5
28
1 6 7 8 10 12 15
31
1 2 4 5 6 8 14
25
3 5 8 9
15
2 4 5
29
1 5 6 9 11
31
1 4 7 8
15
1 2 7
29
1 3
27
1 3 6
19
5 6 7 9
25
1 6 7 9
2
1
16
2
32
2 3 9 11 1...

result:

ok ok 556 cases (556 test cases)

Test #12:

score: 0
Accepted
time: 83ms
memory: 30320kb

input:

1
100000 49999 24999
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

99996
1 3 4 6 8 10 12 17 20 22 25 26 27 29 30 32 33 34 35 37 39 42 44 47 48 49 51 54 58 59 60 61 68 69 70 72 74 75 77 78 81 82 84 85 88 89 90 91 93 94 96 97 98 100 103 110 111 112 114 115 116 120 123 124 127 129 130 133 135 136 139 140 143 145 146 149 150 152 153 160 163 169 171 174 175 176 178 179 ...

result:

ok ok 1 cases (1 test case)

Test #13:

score: 0
Accepted
time: 100ms
memory: 15076kb

input:

556
22 1 1
2 1
2 1000000000
1 2
1000000000 2
1 3
1000000000 3
1 4
1000000000 4
1 5
1000000000 5
1 6
1000000000 6
1 7
1000000000 7
1 8
1000000000 8
1 9
1000000000 9
1 10
1000000000 10
1 11
1000000000 11
2 2
18 3 1
2 1
2 1000000000
3 1
3 1000000000
1 2
1000000000 2
1 3
1000000000 3
1 4
1000000000 4
1 ...

output:

29
1
19
1
20
1 5
14
2 5
25
2
28
1 2 3 4 6 8 9
23
1
29
3 5 8 10 11
28
2 3 5 6
5
1
23
6 7 8 9 11
31
2 3 5 10 13 14 15
29
2 3
7
1
26
1
27
2 3 6 9 12 13
24
1 5 7
14
3 5
32
3 4 5 6 10 11 13 14
24
1 2 5
27
1 2 3 6 7 10
32
1 2 3 4 5 9 14 15
30
1 3 5
24
2 3 7
15
2 3 6
26
1
18
1 2 6
22
2
34
5 6 7 8 11 14 15
...

result:

ok ok 556 cases (556 test cases)

Test #14:

score: 0
Accepted
time: 265ms
memory: 33020kb

input:

1
100000 49999 24999
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

99996
1 2 8 11 13 14 15 16 17 19 20 21 26 29 31 36 39 42 45 46 49 51 53 54 55 57 61 62 64 67 68 69 71 73 74 76 78 79 80 81 82 84 85 88 89 91 94 100 101 103 104 109 110 112 113 115 116 120 123 127 130 131 132 133 136 141 147 149 150 151 153 154 155 158 159 161 163 167 168 170 171 173 174 175 177 178 ...

result:

ok ok 1 cases (1 test case)

Test #15:

score: 0
Accepted
time: 164ms
memory: 29472kb

input:

1
100000 49998 34141
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

118282
1 2 3 4 5 6 7 8 10 11 12 14 15 16 23 25 26 27 28 30 31 32 34 35 38 39 40 42 43 44 45 46 47 48 49 50 51 54 55 57 58 59 60 63 65 66 67 68 69 71 72 73 74 75 76 77 79 80 81 83 84 85 86 87 88 89 91 92 93 94 95 96 98 101 102 103 104 108 109 111 113 114 115 116 117 118 120 121 122 124 127 128 129 13...

result:

ok ok 1 cases (1 test case)

Test #16:

score: 0
Accepted
time: 160ms
memory: 38068kb

input:

1
100000 82275 67072
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

119590
5 6 7 9 18 21 22 23 24 26 27 29 30 31 32 33 35 37 40 44 46 49 51 53 54 57 58 61 64 65 66 67 68 69 71 72 73 74 75 77 78 79 80 81 83 85 86 87 89 90 91 92 93 94 97 98 99 101 102 103 104 105 106 108 111 112 115 119 120 122 123 126 127 129 130 131 132 133 134 137 140 141 143 145 147 149 150 152 15...

result:

ok ok 1 cases (1 test case)

Test #17:

score: 0
Accepted
time: 111ms
memory: 19328kb

input:

556
30 12 6
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
1 2
1000000000 2
1 3
1000000000 3
1 4
1000000000 4
1 5
1000000000 5
1 6
1000000000 6
1 7
1000000000 7
1 8
1000000000 8
1 9
1000000000 9
2 6
2 8
3 4
4 4
4 8
5 3
5 7
5 8
6...

output:

29
2 4 8 10 11 7
19
2 3 7 9 11 5 6 8 10
25
3 8 12 2 4 5 6 9 10 11
13
3 4 5
31
2 3 5 6 8 9 11 12 13 14 17 18 19 21 23 24 25 27 16 20 22 26 28
36
1 4 9 13 5 8 10
18
2 3 4 5
20
3 7 4 6 8
20
2 3 8 10 11 12 13 14 15 17 18 4 5 6 7
12
2 3 4 5
8
2 3 4 6 7 8
15
2 3 4 5 6
22
2 3 5 6 8 9 10 13 15 16 18 7 12
25...

result:

ok ok 556 cases (556 test cases)

Test #18:

score: 0
Accepted
time: 217ms
memory: 43544kb

input:

1
100000 99991 75553
2 1
2 1000000000
3 1
3 1000000000
4 1
4 1000000000
5 1
5 1000000000
6 1
6 1000000000
7 1
7 1000000000
8 1
8 1000000000
9 1
9 1000000000
10 1
10 1000000000
11 1
11 1000000000
12 1
12 1000000000
13 1
13 1000000000
14 1
14 1000000000
15 1
15 1000000000
16 1
16 1000000000
17 1
17 10...

output:

101120
2 3 5 7 8 9 10 12 13 14 15 17 18 20 21 22 24 25 26 27 28 30 31 33 34 35 38 39 40 41 42 43 47 48 50 52 54 55 57 58 59 60 61 63 65 66 67 68 69 71 72 73 75 76 77 78 79 80 81 82 85 86 87 88 89 90 91 92 93 95 97 98 99 100 102 103 104 105 107 108 109 110 111 112 114 115 116 117 118 120 121 122 124 ...

result:

ok ok 1 cases (1 test case)

Extra Test:

score: 0
Extra Test Passed