Pagini recente » Cod sursa (job #2902260) | Cod sursa (job #1099607) | Cod sursa (job #1705249) | Cod sursa (job #2882680) | Cod sursa (job #1487563)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, m, o;
struct nod
{
int inf;
nod *next;
} *p[100100], *q;
void crearemultime()
{
for(int i=1; i<=n; i++)
{
q = new nod;
q->inf = i;
q->next=p[i];
p[i]=q;
}
}
void multimi(nod *q, int y)
{
while (q->next != NULL)
q = q->next;
for(nod *w=p[y]; w; w=w->next)
{
q->next = w;
q = w;
}
}
void cauta(int x, int y)
{
q = new nod;
for(q = p[x]; q; q=q->next)
if(q->inf == y)
{
fout<<"DA"<<"\n";
return;
}
fout<<"NU"<<"\n";
}
int main()
{
fin >> n >> m;
crearemultime();
int x, y;
while(m)
{
fin >> o >> x >> y;
if(o == 1)
multimi(p[x], y);
else
cauta(x, y);
m--;
}
return 0;
}