#include<bits/stdc++.h>
using namespace std;
//Types
using ll = long long;
using db = double;
//Vectors
#define pb push_back
#define sz(vec) ((ll)vec.size())
#define all(vec) vec.begin(), vec.end()
//things
#define f first
#define s second
const int SMALLINF = 1e9 + 7;
const ll BIGINF = ((ll)1e18) + 7;
#define Speeed ios::sync_with_stdio(0);cin.tie(NULL); cout.tie(NULL);
vector<ll> connect[20007];
// map<ll, map<ll, ll> > dist;
map<ll, ll> dist;
map<ll, bool> visited;
map<ll, map<ll, ll> > ans;
deque<ll> top;
void dfs(ll x){
visited[x] = true;
for(auto y: connect[x]){
if(!visited[y]){
dfs(y);
}
// path[x] = max(path[x], path[y]+1);
}
top.pb(x);
}
void solve(){
ll n, m, q;
cin>>n>>m>>q;
for(ll i = 0; i < m; i++){
ll u, v;
cin>>u>>v;
connect[u].pb(v);
// connect[v].pb(u);
}
for(ll i = 1; i <= n; i++){
if(!visited[i])dfs(i);
}
for(ll i = 1; i <= n; i++){
for(ll j = 1; j <= n; j++){
if(i!=j)dist[j] = BIGINF;
}
dist[i] = 0;
deque<ll> top2 = top;
while (!top2.empty()){
ll u = top2.back();
top2.pop_back();
// cout<<u<<" ";
if (dist[u]!=BIGINF){
for (auto v : connect[u]){
if (dist[v] > dist[u] - 1){
dist[v] = dist[u] - 1;
// cout<<"here: "<<dist[v]<<" "<<dist[u]<<"\n";
}
}
}
}
// cout<<i<<": ";
for(ll k = 1; k <= n; k++){
ans[i][k] = dist[k]*-1;
// if(dist[k]==BIGINF)cout<<"! ";
// else cout<<dist[k]*-1<<" ";
dist[k] = 0;
}
// cout<<"\n";
}
while(q--){
ll t, y;
cin>>t>>y;
map<ll, bool> no;
for(ll i = 0; i < y; i++){
ll x;
cin>>x;
no[x] = true;
}
ll mx = -1;
for(ll i = 1; i <= n; i++){
if(!no[i]){
mx = max(mx, ans[i][t]);
// cout<<i<<" "<<dist[i][t]<<"\n";
}
}
cout<<mx<<" ";
}
}
int main(){
Speeed
ll t=1;
// cin>>t;
while(t--){
solve();
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
724 KB |
Output is correct |
2 |
Correct |
1 ms |
724 KB |
Output is correct |
3 |
Correct |
1 ms |
724 KB |
Output is correct |
4 |
Correct |
1 ms |
724 KB |
Output is correct |
5 |
Correct |
384 ms |
63772 KB |
Output is correct |
6 |
Correct |
370 ms |
63780 KB |
Output is correct |
7 |
Correct |
393 ms |
63772 KB |
Output is correct |
8 |
Correct |
492 ms |
63876 KB |
Output is correct |
9 |
Correct |
528 ms |
63868 KB |
Output is correct |
10 |
Correct |
506 ms |
63872 KB |
Output is correct |
11 |
Correct |
471 ms |
63776 KB |
Output is correct |
12 |
Correct |
394 ms |
63776 KB |
Output is correct |
13 |
Correct |
495 ms |
63672 KB |
Output is correct |
14 |
Correct |
509 ms |
63772 KB |
Output is correct |
15 |
Correct |
434 ms |
63776 KB |
Output is correct |
16 |
Correct |
470 ms |
63768 KB |
Output is correct |
17 |
Correct |
460 ms |
63708 KB |
Output is correct |
18 |
Correct |
380 ms |
63716 KB |
Output is correct |
19 |
Correct |
469 ms |
63740 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
724 KB |
Output is correct |
2 |
Correct |
1 ms |
724 KB |
Output is correct |
3 |
Correct |
1 ms |
724 KB |
Output is correct |
4 |
Correct |
1 ms |
724 KB |
Output is correct |
5 |
Correct |
384 ms |
63772 KB |
Output is correct |
6 |
Correct |
370 ms |
63780 KB |
Output is correct |
7 |
Correct |
393 ms |
63772 KB |
Output is correct |
8 |
Correct |
492 ms |
63876 KB |
Output is correct |
9 |
Correct |
528 ms |
63868 KB |
Output is correct |
10 |
Correct |
506 ms |
63872 KB |
Output is correct |
11 |
Correct |
471 ms |
63776 KB |
Output is correct |
12 |
Correct |
394 ms |
63776 KB |
Output is correct |
13 |
Correct |
495 ms |
63672 KB |
Output is correct |
14 |
Correct |
509 ms |
63772 KB |
Output is correct |
15 |
Correct |
434 ms |
63776 KB |
Output is correct |
16 |
Correct |
470 ms |
63768 KB |
Output is correct |
17 |
Correct |
460 ms |
63708 KB |
Output is correct |
18 |
Correct |
380 ms |
63716 KB |
Output is correct |
19 |
Correct |
469 ms |
63740 KB |
Output is correct |
20 |
Execution timed out |
2057 ms |
8136 KB |
Time limit exceeded |
21 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
724 KB |
Output is correct |
2 |
Correct |
1 ms |
724 KB |
Output is correct |
3 |
Correct |
1 ms |
724 KB |
Output is correct |
4 |
Correct |
1 ms |
724 KB |
Output is correct |
5 |
Correct |
384 ms |
63772 KB |
Output is correct |
6 |
Correct |
370 ms |
63780 KB |
Output is correct |
7 |
Correct |
393 ms |
63772 KB |
Output is correct |
8 |
Correct |
492 ms |
63876 KB |
Output is correct |
9 |
Correct |
528 ms |
63868 KB |
Output is correct |
10 |
Correct |
506 ms |
63872 KB |
Output is correct |
11 |
Correct |
471 ms |
63776 KB |
Output is correct |
12 |
Correct |
394 ms |
63776 KB |
Output is correct |
13 |
Correct |
495 ms |
63672 KB |
Output is correct |
14 |
Correct |
509 ms |
63772 KB |
Output is correct |
15 |
Correct |
434 ms |
63776 KB |
Output is correct |
16 |
Correct |
470 ms |
63768 KB |
Output is correct |
17 |
Correct |
460 ms |
63708 KB |
Output is correct |
18 |
Correct |
380 ms |
63716 KB |
Output is correct |
19 |
Correct |
469 ms |
63740 KB |
Output is correct |
20 |
Execution timed out |
2057 ms |
8136 KB |
Time limit exceeded |
21 |
Halted |
0 ms |
0 KB |
- |