void initialise(int parents[])
{
for (int i = 0; i < mmm; i++)
{
parents[i] = -1;
}
}
int find_root(int x, int parents[])
{
int x_root = x;
while (parents[x_root] != -1) {
x_root = parents[x_root];
}
return x_root;
}
int unionn(int x, int y, int parents[],int rank[])
{
int x_root = find_root(x, parents);
int y_root = find_root(y, parents);
if (x_root == y_root) {
return 0;
}
else
{
if (rank[x_root] > rank[y_root])
{
parents[y_root] = x_root;
}
else if(rank[x_root] < rank[y_root]){
parents[x_root] = y_root;
}
else {
parents[x_root] = y_root;
rank[y_root]++;
}
return 1;
}
}
int main()
{
int parents[mmm] = { 0 };
int rank[mmm] = { 0 };
int edges[6][2] = { {0,1},{1,2},{1,3}, {2,4},{3,4},{2,5} };
initialise(parents);
for (int i = 0; i < 6; i++)
{
int x = edges[i][0];
int y = edges[i][1];
if (unionn(x, y, parents,rank) == 0) {
printf("1\n");
return 0;
}
}
printf("0");
return 0;
}