제출 #1217150

#제출 시각아이디문제언어결과실행 시간메모리
1217150MuhammetBitaro’s Party (JOI18_bitaro)C++20
14 / 100
2094 ms16964 KiB
#include "bits/stdc++.h" using namespace std; #define ll long long #define SZ(s) (int)s.size() #define ff first #define ss second const int N = (2e5 + 5); const ll M = 1e9 + 7; vector <int> v[N]; int a[N], vis[N]; bool f(int x) { if(~a[x]) return vis[x]; int mx = -1; bool tr = 0; for(auto i : v[x]) { if(f(i)) { vis[x] = true; mx = max(mx, a[i]); } } a[x] = mx + 1; return vis[x]; } int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, m, q; cin >> n >> m >> q; for(int i = 1; i <= m; i++) { int u1, u2; cin >> u1 >> u2; v[u1].push_back(u2); } while(q--) { int t, y; cin >> t >> y; vector <int> vis1(n+1, 0); for(int i = 1; i <= n; i++) { vis[i] = 0; a[i] = -1; } vis[t] = 1; a[t] = 0; for(int i = 1; i <= n; i++) { f(i); } int ans = -1; for(int i = 0; i < y; i++) { int x; cin >> x; vis1[x] = true; } for(int i = 1; i <= n; i++) { if(!vis1[i] and vis[i]) ans = max(ans, a[i]); } cout << ans << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...