flight routes check
This commit is contained in:
@@ -0,0 +1,51 @@
|
|||||||
|
// Flight Routes Check
|
||||||
|
|
||||||
|
#include<bits/stdc++.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
void dfs(bitset<(int)1e5>& v, int s, vector<vector<int>> &g) {
|
||||||
|
v[s] = true;
|
||||||
|
for (auto &e: g[s]) {
|
||||||
|
if (!v[e]) {
|
||||||
|
dfs(v, e, g);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int n, m; cin >> n >> m;
|
||||||
|
vector<vector<int>> g(n);
|
||||||
|
vector<vector<int>> r(n);
|
||||||
|
for (int i{}; i < m; i++) {
|
||||||
|
int a, b; cin >> a >> b; a--; b--;
|
||||||
|
g[a].push_back(b);
|
||||||
|
r[b].push_back(a);
|
||||||
|
}
|
||||||
|
bitset<(int)1e5> v = 0;
|
||||||
|
dfs(v, 0, g);
|
||||||
|
bitset<(int)1e5> v2 = 0;
|
||||||
|
if (v.count() != n) {
|
||||||
|
cout << "NO" << endl;
|
||||||
|
for (int i{}; i < n; i++) {
|
||||||
|
if (!v[i]) {
|
||||||
|
cout << 1 << " " << i + 1 << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
dfs(v2, 0, r);
|
||||||
|
if (v2.count() != n) {
|
||||||
|
cout << "NO" << endl;
|
||||||
|
for (int i{}; i < n; i++) {
|
||||||
|
if (!v2[i]) {
|
||||||
|
cout << i + 1 << " " << 1 << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cout << "YES" << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user