Pagini recente » Cod sursa (job #668389) | Cod sursa (job #1827586) | Cod sursa (job #3228293) | Cod sursa (job #2518444) | Cod sursa (job #2651308)
import java.io.File;
import java.io.FileWriter;
import java.util.Scanner;
public class Main {
static File input, output;
static Scanner fin;
static FileWriter fout;
static int n, m, op, x, y;
static int[] T = new int[100005];
@SuppressWarnings("unused")
private static void print(String msg) {
System.out.println(msg);
}
private static int radacina(int x) {
while (T[x] > 0) {
x = T[x];
}
return x;
}
public static void main(String[] args) {
try {
input = new File("disjoint.in");
output = new File("disjoint.out");
if (!input.exists())
input.createNewFile();
fin = new Scanner(input);
fout = new FileWriter("disjoint.out");
n = fin.nextInt();
m = fin.nextInt();
for (int i = 1;i<=n;++i)
T[i] = -1;
for (int i=1;i<=m;++i) {
op = fin.nextInt();
x = fin.nextInt();
y = fin.nextInt();
int ra = radacina(x);
int rb = radacina(y);
if (op == 1) {
if (T[ra] < T[rb]) {
T[ra] += T[rb];
T[rb] = ra;
} else {
T[rb] += T[ra];
T[ra] = rb;
}
} else {
if (ra == rb) {
fout.write("DA\n");
} else {
fout.write("NU\n");
}
}
}
fout.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}