Padure
Sa se scrie un program care citeste un numar de relatii de forma (i,j).Semnificatia este : triunghiul i este asemenea cu triunghiul j. Apoi se vor citi,din nou,doua numere naturale i,j cu semnificatia de triunghiuri.Intrebarea este : sunt asemenea triunghiurile i si j ? |
#include<iostream>
#include<fstream> using namespace std; int n,i,j,T[50],H[50]; int Arb(int nod) { while(T[nod]) nod=T[nod]; return nod; } void Adaug(int i, int j) { int v1=Arb(i),v2=Arb(j); if(v1!=v2) if(H[v1]==H[v2]) { T[v1]==T[v2]; H[v2]++; } else if(H[v1]<H[v2]) T[v1]=v2; else T[v2]=v1; } main() { fstream f("Graf.txt", ios::in); f>>n; while(f>>i>>j) Adaug(i,j); f.close(); cout<<"i="; cin>>i; cout<<"j="; cin>>j; if (Arb(i)==Arb(j)) cout<<"asemena"; else cout<<"Nu sunt asemenea"; } |