Submission #310878


Source Code Expand

#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <numeric>
#define FOR(x, to) for (int x = 0; x < to; x++)

using namespace std;

typedef long long ll;
typedef pair<int, int> P;

int ans;
int N, M;
int parent[100005];

void init() {
	for (int i = 0; i < 100005; i++) {
		parent[i] = i;
	}
}

int find(int x) {
	if (x == parent[x]) {
		return x;
	} else {
		return parent[x] = find(parent[x]);
	}
}

void unite(int x, int y) {
	int a = find(x);
	int b = find(y);
	if (a == b) return;
	parent[b] = a;
}


int main() {
	cin >> N >> M;
	init();
	FOR(i, M) {
		int a, b;
		cin >> a >> b;
		a--; b--;
		//cout << a << " " << b << endl;
		unite(a, b);
	}
	FOR(i, N) {
		int x = find(i);
		if (i == x) ans++;
	}
	cout << ans-1 << endl;
	return 0;
}


Submission Info

Submission Time
Task B - 道路工事
User apple_juice
Language C++ (G++ 4.6.4)
Score 100
Code Size 960 Byte
Status AC
Exec Time 140 ms
Memory 1312 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 20
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
Case Name Status Exec Time Memory
0.txt AC 28 ms 1300 KiB
1.txt AC 25 ms 1064 KiB
10.txt AC 27 ms 1184 KiB
11.txt AC 25 ms 1308 KiB
12.txt AC 25 ms 1308 KiB
13.txt AC 25 ms 1184 KiB
14.txt AC 25 ms 1104 KiB
15.txt AC 109 ms 1184 KiB
16.txt AC 26 ms 1184 KiB
17.txt AC 26 ms 1312 KiB
18.txt AC 25 ms 1304 KiB
19.txt AC 140 ms 1176 KiB
2.txt AC 25 ms 1300 KiB
3.txt AC 25 ms 1184 KiB
4.txt AC 27 ms 1060 KiB
5.txt AC 25 ms 1180 KiB
6.txt AC 26 ms 1304 KiB
7.txt AC 26 ms 1188 KiB
8.txt AC 25 ms 1184 KiB
9.txt AC 25 ms 1188 KiB
sample1.txt AC 27 ms 1192 KiB
sample2.txt AC 27 ms 1116 KiB