Pagini recente » Cod sursa (job #1931522) | Cod sursa (job #720739) | Cod sursa (job #2557996) | Cod sursa (job #1653694) | Cod sursa (job #2635481)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef struct listNode
{
listNode* next;
listNode* final;
int multime;
int numar;
};
listNode* list[100111];
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out","w",stdout);
int n, m;
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++)
{
listNode* node = (listNode*)malloc(sizeof(listNode));
node->numar = i;
node->multime = i;
node->next = NULL;
node->final = node;
list[i] = node;
}
int cod, x, y;
for (int i = 0; i < m; i++)
{
scanf("%d%d%d", &cod, &x, &y);
if (cod == 1)
{
if (list[x]->multime < list[y]->multime)
{
listNode* p = list[y];
p->multime = list[x]->multime;
while (p->next != NULL)
{
p = p->next;
p->multime = list[x]->multime;
}
list[list[x]->multime]->final->next = list[y];
list[list[x]->multime]->final = p;
}
else
{
listNode* p = list[x];
p->multime = list[y]->multime;
while (p->next != NULL)
{
p = p->next;
p->multime = list[y]->multime;
}
list[list[y]->multime]->final->next = list[x];
list[list[y]->multime]->final = p;
}
}
else
{
if (list[x]->multime == list[y]->multime)
printf("DA\n");
else
printf("NU\n");
}
}
}