Pagini recente » Cod sursa (job #246363) | Cod sursa (job #1800165) | Cod sursa (job #3038690) | Cod sursa (job #670102) | Cod sursa (job #2227905)
#include <cstdio>
char buffer[2000000]; int p = -1;
__attribute__((always_inline)) int get_int()
{
int number = 0;
for(++p; buffer[p] > 47; ++p)
{
number = number * 10 + buffer[p] - 48;
}
return number;
}
int main()
{
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
fread(buffer, 1, 2000000, stdin);
int nodes, edges, parent[100001], u, v, t, x = 0;
nodes = get_int();
edges = get_int();
for(int i = 1; i <= nodes; i++)
{
parent[i] = i;
}
for(int i = 1; i <= edges; i++)
{
u = get_int();
v = get_int();
while(u != parent[u]) t = parent[parent[u]], parent[u] = t, u = t;
while(v != parent[v]) t = parent[parent[v]], parent[v] = t, v = t;
if(u != v) x++; parent[u] = v;
}
printf("%d", nodes - x);
}