Pagini recente » Cod sursa (job #1432264) | Cod sursa (job #2471167) | Cod sursa (job #2379047) | Cod sursa (job #504696) | Cod sursa (job #385229)
Cod sursa(job #385229)
/*
* File: main.cpp
* Author: virtualdemon
*
* Created on January 22, 2010, 1:02 PM
*/
#include <vector>
#include <fstream>
/*
*
*/
using namespace std;
typedef unsigned int u;
vector<u> father;
u find( u x )
{
u y, z;
for( y=x; y != father[y]; y=father[y] );
for( ; x != father[x]; )
{
z=father[x];
father[x]=y;
x=z;
}
return y;
}
inline u min( u x, u y )
{
return y^( (x^y) & -(x<y) );
}
int main()
{u n, m, i, op, x, y;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
in>>n>>m;
for( i=0; i < n; ++i )
father.push_back(i);
for( i=0; i < m; ++i )
{
in>>op>>x>>y;
x=find( x-1 );
y=find( y-1 );
switch( op )
{
case 1 : father[x]=y; break;
case 2 : if( find( x ) == find( y ) )
out<<"DA\n";
else out<<"NU\n";
}
}
return 0;
}