Submission #47757

#TimeUsernameProblemLanguageResultExecution timeMemory
47757mirbek01Bitaro’s Party (JOI18_bitaro)C++17
7 / 100
2056 ms7416 KiB
# include <bits/stdc++.h> using namespace std; const int N = 1e5 + 2; int n, m, q, d[N], used[N]; vector <int> g[N]; int main(){ cin >> n >> m >> q; for(int i = 0; i < m; i ++){ int u, v; cin >> u >> v; g[v].push_back(u); } while(q --){ int t, y; cin >> t >> y; vector <int> v; for(int i = 1; i <= y; i ++){ int x; cin >> x; used[x] = 1; v.push_back(x); } set < pair <int, int> > st; memset(d, 0, sizeof(d)); st.insert({d[t], t}); int ans = -1; while(!st.empty()){ int v = st.begin()->second; st.erase(st.begin()); if(!used[v]) ans = max(ans, -d[v]); for(int to : g[v]){ if(d[v] - 1 < d[to]){ st.erase({d[to], to}); d[to] = d[v] - 1; st.insert({d[to], to}); } } } cout << ans << endl; for(int i : v) used[i] = 0; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...