Submission #881924

#TimeUsernameProblemLanguageResultExecution timeMemory
881924TAhmed33Newspapers (CEOI21_newspapers)C++98
4 / 100
1 ms604 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 1e3 + 25; struct DSU { int sze[MAXN], par[MAXN]; void init () { for (int i = 1; i < MAXN; i++) { sze[i] = 1; par[i] = i; } } int find (int x) { return par[x] == x ? x : par[x] = find(par[x]); } void merge (int a, int b) { a = find(a); b = find(b); if (a == b) return; if (sze[a] > sze[b]) swap(a, b); sze[b] += sze[a]; par[a] = b; } } cur; int n, m; int main () { bool flag = 1; cin >> n >> m; cur.init(); for (int i = 1; i <= m; i++) { int a, b; cin >> a >> b; if (cur.find(a) == cur.find(b)) { flag = 0; } else { cur.merge(a, b); } } cout << (flag ? "YES\n" : "NO\n"); if (!flag) return 0; cout << 2 * n << '\n'; for (int i = 1; i <= n; i++) cout << i << " "; for (int i = 1; i <= n; i++) cout << i << " "; cout << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...