Submission #483880

#TimeUsernameProblemLanguageResultExecution timeMemory
483880blueBitaro’s Party (JOI18_bitaro)C++17
0 / 100
4 ms5452 KiB
#include <iostream> #include <vector> using namespace std; const int mx = 100'000; vector<int> edge[1+mx]; vector<int> rev_edge[1+mx]; int N, M, Q; int dest; vector<int> excluded(1+mx, 0); int main() { cin >> N >> M >> Q; for(int j = 1; j <= M; j++) { int s, e; cin >> s >> e; edge[s].push_back(e); rev_edge[e].push_back(s); } int dest, Y; cin >> dest >> Y; for(int y = 1; y <= Y; y++) { int C; cin >> C; excluded[C] = 1; } vector<int> maxdist(1+N, -1); for(int i = 1; i <= N; i++) { if(!excluded[i]) maxdist[i] = max(maxdist[i], 0); for(int j: edge[i]) maxdist[j] = max(maxdist[j], maxdist[i] + 1); } cout << maxdist[dest] << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...