Pagini recente » Cod sursa (job #949452) | Cod sursa (job #2855303) | Cod sursa (job #615781) | Cod sursa (job #1613919) | Cod sursa (job #1705409)
package Disjoint;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static ArrayList<ArrayList<Integer>> listaAdj = new ArrayList<ArrayList<Integer>>();
public static ArrayList<Integer> parents = new ArrayList<Integer>();
public static void main(String[] Args)
{
try
{
BufferedReader bf = new BufferedReader(new FileReader("disjoint.in"));
PrintWriter out = new PrintWriter ( "disjoint.out") ;
String tmp[] = bf.readLine().split(" ");
int n = Integer.parseInt(tmp[0]);
int m = Integer.parseInt(tmp[1]);
for(int i = 0; i<n; i++){
listaAdj.add(new ArrayList<Integer>());
parents.add(i+1);
}
for(int i = 0; i<m; i++){
tmp = bf.readLine().split(" ");
int comanda = Integer.parseInt(tmp[0]);
int nod1 = Integer.parseInt(tmp[1]);
int nod2 = Integer.parseInt(tmp[2]);
if( comanda == 1){
union(nod1, nod2);
}
else{
int findParent1 = findParent(nod1);
int findParent2 = findParent(nod2);
if(findParent1 == findParent2){
out.println("DA");
}
else{
out.println("NU");
}
}
}
out.close();
bf.close();
}
catch (IOException E)
{
System.err.println("Eroare la citire/scriere");
}
}
private static void union(int nod1, int nod2) {
parents.set(nod1-1, nod2);
}
private static int findParent(int nod) {
if(parents.get(nod-1) == nod) return nod;
// Find the parent
while(parents.get(nod-1) != nod ){
nod = parents.get(nod-1);
}
return nod;
}
}