Submission #95072

# Submission time Handle Problem Language Result Execution time Memory
95072 2019-01-27T07:44:20 Z ImaniAm Bitaro’s Party (JOI18_bitaro) C++14
14 / 100
2000 ms 460276 KB
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

typedef pair <int, int> pii;

const int maxn = 1e5 + 10, maxm = 2e5 + 10, sq = 320;
int n, m, q, size[maxn], h[maxn], input[maxn];
vector <pii> mx[maxn], vec;
vector <int> in[maxn];
bitset <maxn> mark;

bool cmp(const pii &p1, const pii &p2) {
	return p1 > p2;
}

int main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin >> n >> m >> q;
	for (int i = 0; i < n; ++i)
		mx[i].reserve(sq);
	for (int i = 0, v, u; i < m; ++i) {
		cin >> v >> u;
		in[--u].pb(--v);
	}
	vec.resize(sq + sq);
	for (int i = 0; i < n; ++i) {
		mx[i].pb({-1, i});
		for (auto j: in[i]) {
			int se = mx[i].size(), se2 = mx[j].size();
			vec.resize(se + se2);
			merge(mx[i].begin(), mx[i].end(), mx[j].begin(), mx[j].end(), vec.begin(), cmp);
			if (int(vec.size()) > sq)
				vec.resize(sq);
			mx[i].swap(vec);
		}
		size[i] = mx[i].size();
		for (int j = 0; j < size[i]; ++j)
			mx[i][j].first++;
	}
	for (int i = 0, v, num; i < q; ++i) {
		cin >> v >> num; --v;
		for (int j = 0; j < num; ++j) {
			cin >> input[j];
			mark[--input[j]] = true;
		}
		int ans = -1;
		for (int j = 0; j < size[v]; ++j)
			if (!mark[mx[v][j].second]) {
				ans = mx[v][j].first;
				break;
			}
		if (ans == -1) {
			memset(h, -63, sizeof(h));
			h[v] = 0;
			for (int j = v; ~j; --j) {
				if (!mark[j])
					ans = max(ans, h[j]);
				for (auto u: in[j])
					h[u] = max(h[u], h[j] + 1);
			}
		}
		cout << ans << '\n';
		for (int j = 0; j < num; ++j)
			mark[input[j]] = false;
	}
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 6 ms 5112 KB Output is correct
2 Correct 6 ms 5368 KB Output is correct
3 Correct 6 ms 5496 KB Output is correct
4 Correct 6 ms 5496 KB Output is correct
5 Correct 11 ms 8696 KB Output is correct
6 Correct 11 ms 8440 KB Output is correct
7 Correct 11 ms 8440 KB Output is correct
8 Correct 13 ms 9464 KB Output is correct
9 Correct 13 ms 9464 KB Output is correct
10 Correct 14 ms 9848 KB Output is correct
11 Correct 13 ms 9336 KB Output is correct
12 Correct 11 ms 8440 KB Output is correct
13 Correct 12 ms 9720 KB Output is correct
14 Correct 12 ms 8824 KB Output is correct
15 Correct 10 ms 8056 KB Output is correct
16 Correct 11 ms 8440 KB Output is correct
17 Correct 12 ms 8952 KB Output is correct
18 Correct 10 ms 8284 KB Output is correct
19 Correct 12 ms 9336 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 5112 KB Output is correct
2 Correct 6 ms 5368 KB Output is correct
3 Correct 6 ms 5496 KB Output is correct
4 Correct 6 ms 5496 KB Output is correct
5 Correct 11 ms 8696 KB Output is correct
6 Correct 11 ms 8440 KB Output is correct
7 Correct 11 ms 8440 KB Output is correct
8 Correct 13 ms 9464 KB Output is correct
9 Correct 13 ms 9464 KB Output is correct
10 Correct 14 ms 9848 KB Output is correct
11 Correct 13 ms 9336 KB Output is correct
12 Correct 11 ms 8440 KB Output is correct
13 Correct 12 ms 9720 KB Output is correct
14 Correct 12 ms 8824 KB Output is correct
15 Correct 10 ms 8056 KB Output is correct
16 Correct 11 ms 8440 KB Output is correct
17 Correct 12 ms 8952 KB Output is correct
18 Correct 10 ms 8284 KB Output is correct
19 Correct 12 ms 9336 KB Output is correct
20 Correct 320 ms 11896 KB Output is correct
21 Correct 316 ms 11232 KB Output is correct
22 Correct 320 ms 11712 KB Output is correct
23 Correct 319 ms 11280 KB Output is correct
24 Correct 1056 ms 406272 KB Output is correct
25 Correct 946 ms 405148 KB Output is correct
26 Correct 923 ms 406264 KB Output is correct
27 Correct 957 ms 459920 KB Output is correct
28 Correct 955 ms 459592 KB Output is correct
29 Correct 967 ms 460276 KB Output is correct
30 Correct 931 ms 457640 KB Output is correct
31 Correct 871 ms 441300 KB Output is correct
32 Correct 930 ms 457780 KB Output is correct
33 Correct 721 ms 363568 KB Output is correct
34 Correct 676 ms 347780 KB Output is correct
35 Correct 690 ms 363220 KB Output is correct
36 Correct 800 ms 412820 KB Output is correct
37 Correct 816 ms 393568 KB Output is correct
38 Correct 804 ms 412920 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 5112 KB Output is correct
2 Correct 6 ms 5368 KB Output is correct
3 Correct 6 ms 5496 KB Output is correct
4 Correct 6 ms 5496 KB Output is correct
5 Correct 11 ms 8696 KB Output is correct
6 Correct 11 ms 8440 KB Output is correct
7 Correct 11 ms 8440 KB Output is correct
8 Correct 13 ms 9464 KB Output is correct
9 Correct 13 ms 9464 KB Output is correct
10 Correct 14 ms 9848 KB Output is correct
11 Correct 13 ms 9336 KB Output is correct
12 Correct 11 ms 8440 KB Output is correct
13 Correct 12 ms 9720 KB Output is correct
14 Correct 12 ms 8824 KB Output is correct
15 Correct 10 ms 8056 KB Output is correct
16 Correct 11 ms 8440 KB Output is correct
17 Correct 12 ms 8952 KB Output is correct
18 Correct 10 ms 8284 KB Output is correct
19 Correct 12 ms 9336 KB Output is correct
20 Correct 320 ms 11896 KB Output is correct
21 Correct 316 ms 11232 KB Output is correct
22 Correct 320 ms 11712 KB Output is correct
23 Correct 319 ms 11280 KB Output is correct
24 Correct 1056 ms 406272 KB Output is correct
25 Correct 946 ms 405148 KB Output is correct
26 Correct 923 ms 406264 KB Output is correct
27 Correct 957 ms 459920 KB Output is correct
28 Correct 955 ms 459592 KB Output is correct
29 Correct 967 ms 460276 KB Output is correct
30 Correct 931 ms 457640 KB Output is correct
31 Correct 871 ms 441300 KB Output is correct
32 Correct 930 ms 457780 KB Output is correct
33 Correct 721 ms 363568 KB Output is correct
34 Correct 676 ms 347780 KB Output is correct
35 Correct 690 ms 363220 KB Output is correct
36 Correct 800 ms 412820 KB Output is correct
37 Correct 816 ms 393568 KB Output is correct
38 Correct 804 ms 412920 KB Output is correct
39 Correct 913 ms 399816 KB Output is correct
40 Correct 771 ms 402048 KB Output is correct
41 Correct 792 ms 402420 KB Output is correct
42 Correct 824 ms 401768 KB Output is correct
43 Correct 767 ms 401576 KB Output is correct
44 Correct 336 ms 12024 KB Output is correct
45 Correct 337 ms 11768 KB Output is correct
46 Correct 330 ms 11740 KB Output is correct
47 Correct 325 ms 11640 KB Output is correct
48 Correct 317 ms 11740 KB Output is correct
49 Execution timed out 2077 ms 458024 KB Time limit exceeded
50 Halted 0 ms 0 KB -