Submission #1517701
Source Code Expand
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vvi; #define rep(i,n) for(ll i=0;i<(n);i++) #define pii pair<int,int> #define piii pair<int,pii> #define mp make_pair #define pb push_back #define ALL(a) (a).begin(),(a).end() #define FST first #define SEC second const int INF = (INT_MAX/2); const ll LLINF = (LLONG_MAX/2); const double eps = 1e-5; const double PI = M_PI; #define DEB cout<<"!"<<endl #define SHOW(a,b) cout<<(a)<<" "<<(b)<<endl #define SHOWARRAY(ar,i,j) REP(a,i)REP(b,j)cout<<ar[a][b]<<((b==j-1)?((a==i-1)?("\n\n"):("\n")):(" ")) #define DIV 1000000007 typedef vector<ll> Array; typedef vector<Array> matrix; typedef tuple<int,int,int> tiii; #define mt make_tuple #define Nodes 100000 class UF{ public: int value[Nodes]; int over[Nodes]; // When over < 0, 'over' keep elements of node(using negative number). -1 means this tree is a node. int root(int index){ int t = index; while(over[t] >= 0) t = over[t]; if(index!=t)over[index] = t; return t; } int merge(int a,int b){ if(this->root(a) == this->root(b)) return false; over[root(a)] += over[root(b)]; over[root(b)] = root(a); } UF(){rep(i,Nodes) over[i] = -1;} }; int main(){ UF u; int n,m; cin >> n >> m; rep(i,m){ int a,b; cin >> a >> b; a--,b--; u.merge(a,b); } set<int> s; rep(i,n){ s.insert(u.root(i)); } cout << s.size() -1 << endl; }
Submission Info
Submission Time | |
---|---|
Task | B - 道路工事 |
User | cashisu1 |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1527 Byte |
Status | AC |
Exec Time | 496 ms |
Memory | 5376 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample1.txt, sample2.txt |
All | 0.txt, 1.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 3.txt, 4.txt, 5.txt, 6.txt, 7.txt, 8.txt, 9.txt, sample1.txt, sample2.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0.txt | AC | 1 ms | 640 KB |
1.txt | AC | 1 ms | 640 KB |
10.txt | AC | 1 ms | 640 KB |
11.txt | AC | 1 ms | 640 KB |
12.txt | AC | 1 ms | 640 KB |
13.txt | AC | 1 ms | 640 KB |
14.txt | AC | 1 ms | 640 KB |
15.txt | AC | 43 ms | 640 KB |
16.txt | AC | 23 ms | 5376 KB |
17.txt | AC | 23 ms | 5376 KB |
18.txt | AC | 23 ms | 5376 KB |
19.txt | AC | 496 ms | 1408 KB |
2.txt | AC | 1 ms | 640 KB |
3.txt | AC | 1 ms | 640 KB |
4.txt | AC | 1 ms | 640 KB |
5.txt | AC | 1 ms | 640 KB |
6.txt | AC | 1 ms | 640 KB |
7.txt | AC | 1 ms | 640 KB |
8.txt | AC | 1 ms | 640 KB |
9.txt | AC | 1 ms | 640 KB |
sample1.txt | AC | 1 ms | 640 KB |
sample2.txt | AC | 1 ms | 640 KB |