Pagini recente » Cod sursa (job #331029) | Cod sursa (job #2658740) | Cod sursa (job #1469331) | Cod sursa (job #1260809) | Cod sursa (job #1246150)
#include<fstream>
#include<cstdio>
using namespace std;
//ifstream in("disjoint.in");
//ofstream out("disjoint.out");
const int nmax = 100006;
int radacina[nmax], n, m, cod, x, y, radx, rady, aux, grad[nmax];
int find_radacina( int x ) {
if(radacina[x]==0)
{
return x;
}
else
{
return ( radacina[x] = find_radacina(radacina[x]));
}
}
int main(){
int player_unu=0;
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%d%d", &n, &m);
for(int i = 1; i<=n; i++)
grad[i] = 1;
for(int shp = 0; shp<m; shp++)
{
scanf("%d%d%d", &cod, &x, &y);
radx = find_radacina(x);
rady = find_radacina(y);
if(cod==1)
{
if(grad[radx]<grad[rady])
{
grad[rady] += grad[radx];
radacina[radx] = rady;
}
else
{
grad[radx] += grad[rady];
radacina[rady] = radx;
}
}
if(cod==2)
{
if(radx==rady)
{
printf("DA\n");
}
else
{
printf("NU\n");
}
}
}
return player_unu;
}