Submission #3010230
Source Code Expand
#include <bits/stdc++.h> using namespace std; using ll = long long; class UnionFind { vector<int> par; vector<int> rank; int find(int a) { return par[a] < 0 ? a : par[a] = find(par[a]); } public: UnionFind(int n) : par(n, -1), rank(n, 1) {} bool same(int a, int b) { return find(a) == find(b); } void unite(int a, int b) { a = find(a); b = find(b); if (a == b) return; if (rank[a] > rank[b]) { par[a] += par[b]; par[b] = a; } else { par[b] += par[a]; par[a] = b; if (rank[a] == rank[b]) rank[b]++; } } int size(int a) { return -par[find(a)]; } }; int main() { ll N, M; cin >> N >> M; UnionFind uf(N); for (int i = 0; i < M; i++) { int a, b; cin >> a >> b; a--; b--; uf.unite(a, b); } ll s1 = min(uf.size(0), uf.size(1)), s2 = N - s1; cout << (s1 * (s1 - 1) / 2 + s2 * (s2 - 1) / 2 - M) << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Shock |
User | fxt |
Language | C++ (GCC 5.4.1) |
Score | 0 |
Code Size | 913 Byte |
Status | CE |
Compile Error
./Main.cpp:3:7: error: expected nested-name-specifier before ‘ll’ using ll = long long; ^ ./Main.cpp: In function ‘int main()’: ./Main.cpp:36:2: error: ‘ll’ was not declared in this scope ll N, M; ^ ./Main.cpp:37:9: error: ‘N’ was not declared in this scope cin >> N >> M; ^ ./Main.cpp:37:14: error: ‘M’ was not declared in this scope cin >> N >> M; ^ ./Main.cpp:44:5: error: expected ‘;’ before ‘s1’ ll s1 = min(uf.size(0), uf.size(1)), s2 = N - s1; ^ ./Main.cpp:45:11: error: ‘s1’ was not declared in this scope cout << (s1 * (s1 - 1) / 2 + s2 * (s2 - 1) / 2 - M) << endl; ^ ./Main.cpp:45:31: error: ‘s2’ was not declared in this scope cout << (s1 * (s1 - 1) / 2 + s2 * (s2 - 1) / 2 - M) << endl; ^