// Code by Parsa Eslami
#include <bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
#define pll pair<ll,ll>
#define err(x) cerr<#x<<" : "<<x<<'\n'
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define FORR(i,a,b) for(int i=a;i>=b;i--)
#define F first
#define S second
#define pb push_back
#define bit(i,j) ((j>>i)&1)
#define maxm(a,b) a=max(a,b)
#define minm(a,b) a=min(a,b)
#define all(x) x.begin(),x.end()
#define SZ(x) (int)x.size()
#define dmid int mid=(r+l)/2
#define lc 2*id
#define rc 2*id+1
using namespace std;
const int N=1e5+4;
const int SQ=340;
vector<int> adj[N];
vector<pii> vc[N];
int ind[N];
int dp[N];
bool mark[N];
int32_t main(){
iostream::sync_with_stdio(0); cin.tie(0);
int n,m,q; cin>>n>>m>>q;
FOR(i,1,m){
int v,u; cin>>v>>u;
adj[u].pb(v);
}
FOR(i,1,n){
vector<pii> vc0;
vc[i].pb({-1,i});
while(SZ(vc0)<=SQ){
pair<pii,int> mx={{-2,-1},0};
for(int u:adj[i]) while(ind[u]<SZ(vc[u])&&mark[vc[u][ind[u]].S]) ind[u]++;
if(ind[i]<SZ(vc[i])){
pair<pii,int> O={vc[i][ind[i]],i};
maxm(mx,O);
}
for(int u:adj[i]) if(ind[u]<SZ(vc[u])){
pair<pii,int> O={vc[u][ind[u]],u};
maxm(mx,O);
}
mx.F.F++;
if(mx.F.F==-1) break;
ind[mx.S]++;
mark[mx.F.S]=1;
vc0.pb(mx.F);
}
vc[i]=vc0;
for(pii x0:vc[i]) mark[x0.S]=0;
ind[i]=0;
for(int u:adj[i]) ind[u]=0;
}
FOR(__,1,q){
int v; cin>>v;
vector<int> bad; int w; cin>>w;
FOR(_,1,w){
int x0; cin>>x0; bad.pb(x0);
mark[x0]=1;
}
int ans=-1;
if(w>=SQ){
FOR(i,1,v-1) dp[i]=-1;
dp[v]=0;
FORR(i,v,1) if(dp[i]!=-1)
for(int u:adj[i]) maxm(dp[u],dp[i]+1);
FOR(i,1,v) if(!mark[i]) maxm(ans,dp[i]);
}else{
for(pii x0:vc[v]) if(!mark[x0.S]) maxm(ans,x0.F);
}
cout<<ans<<'\n';
for(int w0:bad) mark[w0]=0;
}
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
4948 KB |
Output is correct |
2 |
Correct |
2 ms |
4948 KB |
Output is correct |
3 |
Correct |
3 ms |
4948 KB |
Output is correct |
4 |
Correct |
4 ms |
4948 KB |
Output is correct |
5 |
Correct |
5 ms |
5372 KB |
Output is correct |
6 |
Correct |
5 ms |
5332 KB |
Output is correct |
7 |
Correct |
5 ms |
5332 KB |
Output is correct |
8 |
Correct |
14 ms |
7252 KB |
Output is correct |
9 |
Correct |
13 ms |
7252 KB |
Output is correct |
10 |
Correct |
12 ms |
7252 KB |
Output is correct |
11 |
Correct |
11 ms |
6996 KB |
Output is correct |
12 |
Correct |
8 ms |
5852 KB |
Output is correct |
13 |
Correct |
11 ms |
6868 KB |
Output is correct |
14 |
Correct |
10 ms |
6356 KB |
Output is correct |
15 |
Correct |
7 ms |
5580 KB |
Output is correct |
16 |
Correct |
11 ms |
6228 KB |
Output is correct |
17 |
Correct |
10 ms |
6484 KB |
Output is correct |
18 |
Correct |
8 ms |
5792 KB |
Output is correct |
19 |
Correct |
10 ms |
6484 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
4948 KB |
Output is correct |
2 |
Correct |
2 ms |
4948 KB |
Output is correct |
3 |
Correct |
3 ms |
4948 KB |
Output is correct |
4 |
Correct |
4 ms |
4948 KB |
Output is correct |
5 |
Correct |
5 ms |
5372 KB |
Output is correct |
6 |
Correct |
5 ms |
5332 KB |
Output is correct |
7 |
Correct |
5 ms |
5332 KB |
Output is correct |
8 |
Correct |
14 ms |
7252 KB |
Output is correct |
9 |
Correct |
13 ms |
7252 KB |
Output is correct |
10 |
Correct |
12 ms |
7252 KB |
Output is correct |
11 |
Correct |
11 ms |
6996 KB |
Output is correct |
12 |
Correct |
8 ms |
5852 KB |
Output is correct |
13 |
Correct |
11 ms |
6868 KB |
Output is correct |
14 |
Correct |
10 ms |
6356 KB |
Output is correct |
15 |
Correct |
7 ms |
5580 KB |
Output is correct |
16 |
Correct |
11 ms |
6228 KB |
Output is correct |
17 |
Correct |
10 ms |
6484 KB |
Output is correct |
18 |
Correct |
8 ms |
5792 KB |
Output is correct |
19 |
Correct |
10 ms |
6484 KB |
Output is correct |
20 |
Correct |
495 ms |
8308 KB |
Output is correct |
21 |
Correct |
496 ms |
8420 KB |
Output is correct |
22 |
Correct |
513 ms |
8424 KB |
Output is correct |
23 |
Correct |
574 ms |
8420 KB |
Output is correct |
24 |
Correct |
915 ms |
170188 KB |
Output is correct |
25 |
Correct |
974 ms |
177408 KB |
Output is correct |
26 |
Correct |
987 ms |
177116 KB |
Output is correct |
27 |
Correct |
1185 ms |
276408 KB |
Output is correct |
28 |
Correct |
1142 ms |
276624 KB |
Output is correct |
29 |
Correct |
1136 ms |
276764 KB |
Output is correct |
30 |
Correct |
1163 ms |
276064 KB |
Output is correct |
31 |
Correct |
1127 ms |
266648 KB |
Output is correct |
32 |
Correct |
1160 ms |
276028 KB |
Output is correct |
33 |
Correct |
826 ms |
171324 KB |
Output is correct |
34 |
Correct |
718 ms |
141160 KB |
Output is correct |
35 |
Correct |
822 ms |
170336 KB |
Output is correct |
36 |
Correct |
1037 ms |
223912 KB |
Output is correct |
37 |
Correct |
1002 ms |
202820 KB |
Output is correct |
38 |
Correct |
1044 ms |
224320 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
4948 KB |
Output is correct |
2 |
Correct |
2 ms |
4948 KB |
Output is correct |
3 |
Correct |
3 ms |
4948 KB |
Output is correct |
4 |
Correct |
4 ms |
4948 KB |
Output is correct |
5 |
Correct |
5 ms |
5372 KB |
Output is correct |
6 |
Correct |
5 ms |
5332 KB |
Output is correct |
7 |
Correct |
5 ms |
5332 KB |
Output is correct |
8 |
Correct |
14 ms |
7252 KB |
Output is correct |
9 |
Correct |
13 ms |
7252 KB |
Output is correct |
10 |
Correct |
12 ms |
7252 KB |
Output is correct |
11 |
Correct |
11 ms |
6996 KB |
Output is correct |
12 |
Correct |
8 ms |
5852 KB |
Output is correct |
13 |
Correct |
11 ms |
6868 KB |
Output is correct |
14 |
Correct |
10 ms |
6356 KB |
Output is correct |
15 |
Correct |
7 ms |
5580 KB |
Output is correct |
16 |
Correct |
11 ms |
6228 KB |
Output is correct |
17 |
Correct |
10 ms |
6484 KB |
Output is correct |
18 |
Correct |
8 ms |
5792 KB |
Output is correct |
19 |
Correct |
10 ms |
6484 KB |
Output is correct |
20 |
Correct |
495 ms |
8308 KB |
Output is correct |
21 |
Correct |
496 ms |
8420 KB |
Output is correct |
22 |
Correct |
513 ms |
8424 KB |
Output is correct |
23 |
Correct |
574 ms |
8420 KB |
Output is correct |
24 |
Correct |
915 ms |
170188 KB |
Output is correct |
25 |
Correct |
974 ms |
177408 KB |
Output is correct |
26 |
Correct |
987 ms |
177116 KB |
Output is correct |
27 |
Correct |
1185 ms |
276408 KB |
Output is correct |
28 |
Correct |
1142 ms |
276624 KB |
Output is correct |
29 |
Correct |
1136 ms |
276764 KB |
Output is correct |
30 |
Correct |
1163 ms |
276064 KB |
Output is correct |
31 |
Correct |
1127 ms |
266648 KB |
Output is correct |
32 |
Correct |
1160 ms |
276028 KB |
Output is correct |
33 |
Correct |
826 ms |
171324 KB |
Output is correct |
34 |
Correct |
718 ms |
141160 KB |
Output is correct |
35 |
Correct |
822 ms |
170336 KB |
Output is correct |
36 |
Correct |
1037 ms |
223912 KB |
Output is correct |
37 |
Correct |
1002 ms |
202820 KB |
Output is correct |
38 |
Correct |
1044 ms |
224320 KB |
Output is correct |
39 |
Correct |
1057 ms |
172064 KB |
Output is correct |
40 |
Correct |
1047 ms |
173324 KB |
Output is correct |
41 |
Correct |
1136 ms |
174784 KB |
Output is correct |
42 |
Correct |
1020 ms |
174384 KB |
Output is correct |
43 |
Correct |
1100 ms |
173756 KB |
Output is correct |
44 |
Correct |
600 ms |
8808 KB |
Output is correct |
45 |
Correct |
532 ms |
8396 KB |
Output is correct |
46 |
Correct |
510 ms |
8344 KB |
Output is correct |
47 |
Correct |
576 ms |
8368 KB |
Output is correct |
48 |
Correct |
499 ms |
8396 KB |
Output is correct |
49 |
Correct |
1338 ms |
276476 KB |
Output is correct |
50 |
Correct |
1243 ms |
275764 KB |
Output is correct |
51 |
Correct |
556 ms |
8760 KB |
Output is correct |
52 |
Correct |
503 ms |
8560 KB |
Output is correct |
53 |
Correct |
1131 ms |
222988 KB |
Output is correct |
54 |
Correct |
1091 ms |
202984 KB |
Output is correct |
55 |
Correct |
1028 ms |
222644 KB |
Output is correct |
56 |
Correct |
991 ms |
203380 KB |
Output is correct |
57 |
Correct |
597 ms |
8788 KB |
Output is correct |
58 |
Correct |
557 ms |
8988 KB |
Output is correct |
59 |
Correct |
505 ms |
8352 KB |
Output is correct |
60 |
Correct |
507 ms |
8368 KB |
Output is correct |
61 |
Correct |
1352 ms |
276280 KB |
Output is correct |
62 |
Correct |
1079 ms |
223868 KB |
Output is correct |
63 |
Correct |
1048 ms |
202592 KB |
Output is correct |
64 |
Correct |
1346 ms |
276248 KB |
Output is correct |
65 |
Correct |
1082 ms |
223036 KB |
Output is correct |
66 |
Correct |
1020 ms |
203700 KB |
Output is correct |
67 |
Correct |
1248 ms |
275876 KB |
Output is correct |
68 |
Correct |
1006 ms |
223468 KB |
Output is correct |
69 |
Correct |
972 ms |
200532 KB |
Output is correct |
70 |
Correct |
1247 ms |
276332 KB |
Output is correct |
71 |
Correct |
1020 ms |
224080 KB |
Output is correct |
72 |
Correct |
1082 ms |
203356 KB |
Output is correct |
73 |
Correct |
1271 ms |
276280 KB |
Output is correct |
74 |
Correct |
1039 ms |
224048 KB |
Output is correct |
75 |
Correct |
1002 ms |
203476 KB |
Output is correct |
76 |
Correct |
1374 ms |
276556 KB |
Output is correct |
77 |
Correct |
1252 ms |
275932 KB |
Output is correct |
78 |
Correct |
1185 ms |
276616 KB |
Output is correct |
79 |
Correct |
552 ms |
8832 KB |
Output is correct |
80 |
Correct |
513 ms |
8396 KB |
Output is correct |
81 |
Correct |
506 ms |
8408 KB |
Output is correct |
82 |
Correct |
1338 ms |
276172 KB |
Output is correct |
83 |
Correct |
1356 ms |
266700 KB |
Output is correct |
84 |
Correct |
1239 ms |
275632 KB |
Output is correct |
85 |
Correct |
1264 ms |
265868 KB |
Output is correct |
86 |
Correct |
1173 ms |
276088 KB |
Output is correct |
87 |
Correct |
1185 ms |
267008 KB |
Output is correct |
88 |
Correct |
571 ms |
8816 KB |
Output is correct |
89 |
Correct |
571 ms |
8740 KB |
Output is correct |
90 |
Correct |
537 ms |
8424 KB |
Output is correct |
91 |
Correct |
516 ms |
8288 KB |
Output is correct |
92 |
Correct |
549 ms |
8484 KB |
Output is correct |
93 |
Correct |
612 ms |
8384 KB |
Output is correct |
94 |
Correct |
937 ms |
171432 KB |
Output is correct |
95 |
Correct |
807 ms |
140140 KB |
Output is correct |
96 |
Correct |
883 ms |
170176 KB |
Output is correct |
97 |
Correct |
760 ms |
142512 KB |
Output is correct |
98 |
Correct |
848 ms |
171260 KB |
Output is correct |
99 |
Correct |
757 ms |
142484 KB |
Output is correct |
100 |
Correct |
621 ms |
8720 KB |
Output is correct |
101 |
Correct |
684 ms |
8708 KB |
Output is correct |
102 |
Correct |
560 ms |
8364 KB |
Output is correct |
103 |
Correct |
600 ms |
8300 KB |
Output is correct |
104 |
Correct |
565 ms |
8416 KB |
Output is correct |
105 |
Correct |
544 ms |
8388 KB |
Output is correct |
106 |
Correct |
1119 ms |
223160 KB |
Output is correct |
107 |
Correct |
1072 ms |
203088 KB |
Output is correct |
108 |
Correct |
1022 ms |
224160 KB |
Output is correct |
109 |
Correct |
1002 ms |
202504 KB |
Output is correct |
110 |
Correct |
1063 ms |
224732 KB |
Output is correct |
111 |
Correct |
1014 ms |
203772 KB |
Output is correct |
112 |
Correct |
544 ms |
8836 KB |
Output is correct |
113 |
Correct |
555 ms |
8792 KB |
Output is correct |
114 |
Correct |
600 ms |
8332 KB |
Output is correct |
115 |
Correct |
541 ms |
8396 KB |
Output is correct |
116 |
Correct |
574 ms |
8328 KB |
Output is correct |
117 |
Correct |
539 ms |
8384 KB |
Output is correct |
118 |
Correct |
1420 ms |
275900 KB |
Output is correct |
119 |
Correct |
1087 ms |
224052 KB |
Output is correct |
120 |
Correct |
1027 ms |
202360 KB |
Output is correct |
121 |
Correct |
1268 ms |
275948 KB |
Output is correct |
122 |
Correct |
1012 ms |
223052 KB |
Output is correct |
123 |
Correct |
1037 ms |
202644 KB |
Output is correct |
124 |
Correct |
1232 ms |
275888 KB |
Output is correct |
125 |
Correct |
1034 ms |
224368 KB |
Output is correct |
126 |
Correct |
991 ms |
202004 KB |
Output is correct |