Pagini recente » Cod sursa (job #404205) | Cod sursa (job #1211937) | Cod sursa (job #2347333) | Cod sursa (job #57920) | Cod sursa (job #918358)
Cod sursa(job #918358)
#include <fstream>
using namespace std;
//ifstream fin("f.in"); ofstream fout("f.out");
ifstream fin("disjoint.in"); ofstream fout("disjoint.out");
int n, m, tip, T[100001], i, j, H[100001];
int Tata(int nod)
{
while(T[nod])
nod = T[nod];
return nod;
}
void Add(int i, int j)
{
int v1 = Tata(i), v2 = Tata(j);
if(H[v1] == H[v2])
{
T[v1] = v2;
H[v2]++;
}
else
{
if(H[v1] < H[v2])
T[v1] = v2;
else
T[v2] = v1;
}
}
int main()
{
fin >> n >> m;
for(; m; m--)
{
fin >> tip >> i >> j;
if(tip == 1)
Add(i, j);
if(tip == 2)
{
if(Tata(i) == Tata(j))
fout << "DA\n";
else
fout << "NU\n";
}
}
fin.close(); fout.close();
return 0;
}