| 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 |
