Task: | Road network |
Sender: | team_a |
Submission time: | 2020-10-03 15:18:27 +0300 |
Language: | C++ (C++11) |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.01 s | details |
#2 | ACCEPTED | 0.01 s | details |
#3 | ACCEPTED | 0.01 s | details |
#4 | ACCEPTED | 0.01 s | details |
#5 | ACCEPTED | 0.01 s | details |
#6 | ACCEPTED | 0.21 s | details |
#7 | ACCEPTED | 0.21 s | details |
#8 | ACCEPTED | 0.20 s | details |
#9 | ACCEPTED | 0.21 s | details |
#10 | ACCEPTED | 0.21 s | details |
#11 | ACCEPTED | 0.01 s | details |
Code
#include <iostream> #include <vector> using namespace std; void dfs(vector<vector<int>> &G, vector<bool> &v, int node) { v[node] = true; for (int &nxt : G[node]) if (!v[nxt]) dfs(G, v, nxt); } int main () { int n, m; cin >> n >> m; vector<vector<int>> G(n+1), R(n+1); for (int i = 0; i < m; ++i) { int a, b; cin >> a >> b; G[a].push_back(b); R[b].push_back(a); } vector<bool> visited(n+1, false); vector<bool> visitedR(n+1, false); dfs(G, visited, 1); for (int i=1; i <= n; ++i) if (!visited[i]) { cout << "NO" << endl << 1 << ' ' << i << endl; return 0; } dfs(R, visitedR, 1); for (int i=1; i <= n; ++i) if (!visitedR[i]) { cout << "NO" << endl << i << ' ' << 1 << endl; return 0; } cout << "YES" << endl; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
10 20 8 1 9 5 6 10 6 1 ... |
correct output |
---|
NO 7 1 |
user output |
---|
NO 7 1 |
Test 2
Verdict: ACCEPTED
input |
---|
10 20 2 10 10 6 8 5 3 8 ... |
correct output |
---|
NO 1 2 |
user output |
---|
NO 1 2 |
Test 3
Verdict: ACCEPTED
input |
---|
10 20 10 2 1 5 8 3 5 6 ... |
correct output |
---|
NO 9 1 |
user output |
---|
NO 9 1 |
Test 4
Verdict: ACCEPTED
input |
---|
10 20 9 6 10 4 7 2 10 5 ... |
correct output |
---|
NO 6 1 |
user output |
---|
NO 6 1 |
Test 5
Verdict: ACCEPTED
input |
---|
10 20 5 9 10 2 3 5 7 4 ... |
correct output |
---|
YES |
user output |
---|
YES |
Test 6
Verdict: ACCEPTED
input |
---|
100000 200000 64780 62469 32706 84268 37795 14893 23995 68041 ... |
correct output |
---|
NO 40590 1 |
user output |
---|
NO 40590 1 |
Test 7
Verdict: ACCEPTED
input |
---|
100000 200000 74725 92399 25141 53472 70762 85785 47091 71621 ... |
correct output |
---|
NO 96983 1 |
user output |
---|
NO 96983 1 |
Test 8
Verdict: ACCEPTED
input |
---|
100000 200000 50342 88741 55031 42206 24989 54546 666 39964 ... |
correct output |
---|
NO 1 68638 |
user output |
---|
NO 1 68638 |
Test 9
Verdict: ACCEPTED
input |
---|
100000 200000 51243 54643 90493 3012 62110 9430 5809 45601 ... |
correct output |
---|
NO 48024 1 |
user output |
---|
NO 48024 1 |
Test 10
Verdict: ACCEPTED
input |
---|
100000 200000 5524 49109 87052 72192 46434 18442 67624 38661 ... |
correct output |
---|
YES |
user output |
---|
YES |
Test 11
Verdict: ACCEPTED
input |
---|
7 10 1 2 2 1 1 4 5 4 ... |
correct output |
---|
NO 2 3 |
user output |
---|
NO 1 3 |