Submission #963297

# Submission time Handle Problem Language Result Execution time Memory
963297 2024-04-14T20:29:47 Z TimAni Bitaro’s Party (JOI18_bitaro) C++17
100 / 100
889 ms 151556 KB
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
const int mxN = (int)2e5+2;
const int B = 100;

int n, m, Q, a, b;
vector<int> adj[mxN], cur;
vector<array<int,2>> node[mxN];
int bad[mxN], vis[mxN], dis[mxN], dp[mxN];

int main() {
	cin >> n >> m >> Q;
	for(int i = 0; i < m; i++)
		cin >> a >> b, adj[b].pb(a);
	for(int i = 1; i <= n; i++, cur.clear()){
		for(auto j : adj[i]){
			for(auto [w,u] : node[j]){
				if(vis[u]==i) dis[u] = max(dis[u], w+1);
				else vis[u]=i, dis[u] = w+1, cur.pb(u);
			}
		}
		for(auto u : cur) node[i].pb({dis[u],u});
		node[i].pb({0,i}); sort(rbegin(node[i]),rend(node[i]));
		if(node[i].size()>B) node[i].erase(begin(node[i])+B,end(node[i]));
	}
	for(int q = 1; q <= Q; q++){
		int t, k, x, ans=-1; cin >> t >> k;
		for(int i = 0; i < k; i++) cin >> x, bad[x]=q;
		if(k<B){
			for(auto [w,u] : node[t]){
				if(bad[u]!=q){ ans=w; break; }
			}
		}
		else{
			fill(dp, dp+n+1, -1);
			for(int i = 1; i <= t; i++){
				if(bad[i]!=q) dp[i]=0;
				for(auto j : adj[i]) if(dp[j]!=-1) 
					dp[i] = max(dp[i],dp[j]+1);
			}
			ans = dp[t];
		}
		cout << ans << "\n";
	}
}
# Verdict Execution time Memory Grader output
1 Correct 3 ms 10588 KB Output is correct
2 Correct 2 ms 10584 KB Output is correct
3 Correct 3 ms 10588 KB Output is correct
4 Correct 2 ms 10584 KB Output is correct
5 Correct 5 ms 11100 KB Output is correct
6 Correct 5 ms 11096 KB Output is correct
7 Correct 5 ms 11100 KB Output is correct
8 Correct 7 ms 11608 KB Output is correct
9 Correct 7 ms 11612 KB Output is correct
10 Correct 10 ms 11572 KB Output is correct
11 Correct 6 ms 11612 KB Output is correct
12 Correct 6 ms 11356 KB Output is correct
13 Correct 6 ms 11612 KB Output is correct
14 Correct 6 ms 11356 KB Output is correct
15 Correct 6 ms 11236 KB Output is correct
16 Correct 5 ms 11356 KB Output is correct
17 Correct 6 ms 11356 KB Output is correct
18 Correct 7 ms 11356 KB Output is correct
19 Correct 6 ms 11492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 10588 KB Output is correct
2 Correct 2 ms 10584 KB Output is correct
3 Correct 3 ms 10588 KB Output is correct
4 Correct 2 ms 10584 KB Output is correct
5 Correct 5 ms 11100 KB Output is correct
6 Correct 5 ms 11096 KB Output is correct
7 Correct 5 ms 11100 KB Output is correct
8 Correct 7 ms 11608 KB Output is correct
9 Correct 7 ms 11612 KB Output is correct
10 Correct 10 ms 11572 KB Output is correct
11 Correct 6 ms 11612 KB Output is correct
12 Correct 6 ms 11356 KB Output is correct
13 Correct 6 ms 11612 KB Output is correct
14 Correct 6 ms 11356 KB Output is correct
15 Correct 6 ms 11236 KB Output is correct
16 Correct 5 ms 11356 KB Output is correct
17 Correct 6 ms 11356 KB Output is correct
18 Correct 7 ms 11356 KB Output is correct
19 Correct 6 ms 11492 KB Output is correct
20 Correct 98 ms 12792 KB Output is correct
21 Correct 95 ms 12792 KB Output is correct
22 Correct 94 ms 12764 KB Output is correct
23 Correct 95 ms 12888 KB Output is correct
24 Correct 694 ms 119012 KB Output is correct
25 Correct 672 ms 116736 KB Output is correct
26 Correct 663 ms 116624 KB Output is correct
27 Correct 427 ms 117588 KB Output is correct
28 Correct 410 ms 117472 KB Output is correct
29 Correct 436 ms 117464 KB Output is correct
30 Correct 445 ms 117408 KB Output is correct
31 Correct 573 ms 135740 KB Output is correct
32 Correct 448 ms 117532 KB Output is correct
33 Correct 377 ms 82320 KB Output is correct
34 Correct 562 ms 109664 KB Output is correct
35 Correct 368 ms 82276 KB Output is correct
36 Correct 430 ms 99044 KB Output is correct
37 Correct 616 ms 120944 KB Output is correct
38 Correct 406 ms 99204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 10588 KB Output is correct
2 Correct 2 ms 10584 KB Output is correct
3 Correct 3 ms 10588 KB Output is correct
4 Correct 2 ms 10584 KB Output is correct
5 Correct 5 ms 11100 KB Output is correct
6 Correct 5 ms 11096 KB Output is correct
7 Correct 5 ms 11100 KB Output is correct
8 Correct 7 ms 11608 KB Output is correct
9 Correct 7 ms 11612 KB Output is correct
10 Correct 10 ms 11572 KB Output is correct
11 Correct 6 ms 11612 KB Output is correct
12 Correct 6 ms 11356 KB Output is correct
13 Correct 6 ms 11612 KB Output is correct
14 Correct 6 ms 11356 KB Output is correct
15 Correct 6 ms 11236 KB Output is correct
16 Correct 5 ms 11356 KB Output is correct
17 Correct 6 ms 11356 KB Output is correct
18 Correct 7 ms 11356 KB Output is correct
19 Correct 6 ms 11492 KB Output is correct
20 Correct 98 ms 12792 KB Output is correct
21 Correct 95 ms 12792 KB Output is correct
22 Correct 94 ms 12764 KB Output is correct
23 Correct 95 ms 12888 KB Output is correct
24 Correct 694 ms 119012 KB Output is correct
25 Correct 672 ms 116736 KB Output is correct
26 Correct 663 ms 116624 KB Output is correct
27 Correct 427 ms 117588 KB Output is correct
28 Correct 410 ms 117472 KB Output is correct
29 Correct 436 ms 117464 KB Output is correct
30 Correct 445 ms 117408 KB Output is correct
31 Correct 573 ms 135740 KB Output is correct
32 Correct 448 ms 117532 KB Output is correct
33 Correct 377 ms 82320 KB Output is correct
34 Correct 562 ms 109664 KB Output is correct
35 Correct 368 ms 82276 KB Output is correct
36 Correct 430 ms 99044 KB Output is correct
37 Correct 616 ms 120944 KB Output is correct
38 Correct 406 ms 99204 KB Output is correct
39 Correct 824 ms 122376 KB Output is correct
40 Correct 647 ms 118312 KB Output is correct
41 Correct 889 ms 119892 KB Output is correct
42 Correct 705 ms 119888 KB Output is correct
43 Correct 641 ms 121788 KB Output is correct
44 Correct 250 ms 15700 KB Output is correct
45 Correct 119 ms 14836 KB Output is correct
46 Correct 157 ms 14648 KB Output is correct
47 Correct 107 ms 14536 KB Output is correct
48 Correct 92 ms 14224 KB Output is correct
49 Correct 612 ms 119476 KB Output is correct
50 Correct 646 ms 118608 KB Output is correct
51 Correct 263 ms 15444 KB Output is correct
52 Correct 248 ms 14648 KB Output is correct
53 Correct 591 ms 100340 KB Output is correct
54 Correct 764 ms 121704 KB Output is correct
55 Correct 655 ms 99904 KB Output is correct
56 Correct 856 ms 124760 KB Output is correct
57 Correct 263 ms 15552 KB Output is correct
58 Correct 245 ms 15504 KB Output is correct
59 Correct 254 ms 14672 KB Output is correct
60 Correct 244 ms 14416 KB Output is correct
61 Correct 459 ms 118876 KB Output is correct
62 Correct 454 ms 100192 KB Output is correct
63 Correct 637 ms 120056 KB Output is correct
64 Correct 543 ms 118632 KB Output is correct
65 Correct 601 ms 100192 KB Output is correct
66 Correct 785 ms 122196 KB Output is correct
67 Correct 636 ms 118608 KB Output is correct
68 Correct 680 ms 100176 KB Output is correct
69 Correct 879 ms 122096 KB Output is correct
70 Correct 419 ms 118612 KB Output is correct
71 Correct 415 ms 100388 KB Output is correct
72 Correct 598 ms 122040 KB Output is correct
73 Correct 434 ms 118600 KB Output is correct
74 Correct 425 ms 100180 KB Output is correct
75 Correct 637 ms 124192 KB Output is correct
76 Correct 584 ms 119836 KB Output is correct
77 Correct 638 ms 118992 KB Output is correct
78 Correct 425 ms 118736 KB Output is correct
79 Correct 263 ms 15752 KB Output is correct
80 Correct 152 ms 14672 KB Output is correct
81 Correct 90 ms 14348 KB Output is correct
82 Correct 602 ms 119724 KB Output is correct
83 Correct 753 ms 140948 KB Output is correct
84 Correct 632 ms 118864 KB Output is correct
85 Correct 824 ms 151556 KB Output is correct
86 Correct 431 ms 118672 KB Output is correct
87 Correct 601 ms 140056 KB Output is correct
88 Correct 257 ms 15860 KB Output is correct
89 Correct 256 ms 15592 KB Output is correct
90 Correct 162 ms 14932 KB Output is correct
91 Correct 168 ms 14684 KB Output is correct
92 Correct 109 ms 14208 KB Output is correct
93 Correct 103 ms 14232 KB Output is correct
94 Correct 547 ms 84732 KB Output is correct
95 Correct 766 ms 118780 KB Output is correct
96 Correct 588 ms 83728 KB Output is correct
97 Correct 824 ms 118612 KB Output is correct
98 Correct 383 ms 83776 KB Output is correct
99 Correct 595 ms 114668 KB Output is correct
100 Correct 260 ms 15540 KB Output is correct
101 Correct 276 ms 15720 KB Output is correct
102 Correct 148 ms 14676 KB Output is correct
103 Correct 144 ms 14592 KB Output is correct
104 Correct 103 ms 14372 KB Output is correct
105 Correct 99 ms 14420 KB Output is correct
106 Correct 604 ms 100904 KB Output is correct
107 Correct 808 ms 127056 KB Output is correct
108 Correct 682 ms 100656 KB Output is correct
109 Correct 829 ms 117940 KB Output is correct
110 Correct 448 ms 100688 KB Output is correct
111 Correct 628 ms 123404 KB Output is correct
112 Correct 265 ms 15700 KB Output is correct
113 Correct 259 ms 15476 KB Output is correct
114 Correct 160 ms 14540 KB Output is correct
115 Correct 159 ms 14720 KB Output is correct
116 Correct 99 ms 14464 KB Output is correct
117 Correct 93 ms 14356 KB Output is correct
118 Correct 429 ms 118176 KB Output is correct
119 Correct 417 ms 99856 KB Output is correct
120 Correct 645 ms 127172 KB Output is correct
121 Correct 440 ms 118100 KB Output is correct
122 Correct 435 ms 99468 KB Output is correct
123 Correct 638 ms 126556 KB Output is correct
124 Correct 444 ms 118228 KB Output is correct
125 Correct 415 ms 100124 KB Output is correct
126 Correct 608 ms 123512 KB Output is correct