제출 #1150473

#제출 시각아이디문제언어결과실행 시간메모리
1150473bilgunNewspapers (CEOI21_newspapers)C++20
4 / 100
1 ms328 KiB
#include<bits/stdc++.h> using namespace std; long long n, m, sum = 0; vector<vector<long long>> g; vector<long long> col, more; int yno = 0; int ans; void dfs(int node, int dest, int &ways, vector<bool>vis) { vis[node] = true; if( node == dest && node ) ways++; for( int i = 0; i < g[node].size(); i++) { if( !vis[i]){ dfs( i, dest, ways, vis); } else if( vis[i] == true && i == node){ ways++; return; } } } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> m; g.resize(n + 1); col.resize(n + 1); if( m != n - 1) {cout << "NO"; return 0;} else if( n == 1){ cout << "YES" << endl; cout << 2 << endl; cout << "1 1" << endl; return 0; } else if( n == 2 ){ cout << "YES" << endl; cout << 2 << endl; cout << "1 1" << endl; return 0; } for( int i = 1; i <= m; i++) { long long a, b; cin >> a >> b; g[a].push_back(b); g[b].push_back(a); } for( int i = 1; i <= n; i++) { for( int j = i + 1; i <= n; i++) { int ways = 0; vector<bool> vis(1005, false); dfs(i, j, ways, vis); if( ways > 1 ) {yno = 1; break;} else{ ans = i; } } } if( !yno ) {cout << "YES" << endl; cout << 2 << endl; cout << ans << ' ' << ans; } else cout << "NO" << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...