Pagini recente » Cod sursa (job #2444533) | Cod sursa (job #1984592) | Cod sursa (job #2284956) | Cod sursa (job #2664764) | Cod sursa (job #661938)
Cod sursa(job #661938)
#include<fstream>
using namespace std;
int mult[100001];
int predecesor(int x) //afla predecesorul unei multimi
{if(x!=mult[x])
mult[x]=predecesor(mult[x]);
return mult[x];
}
int main(){
int n, m, x, y, cod;
fstream f("disjoint.in",ios::in);
fstream g("disjoint.out",ios::out);
f>>n>>m;
for(int i=1;i<=n;i++) //initializare multimi
mult[i]=i;
for(int i=1;i<=m;i++)
{f>>cod>>x>>y;
if(cod==1) mult[predecesor(x)]=predecesor(y); //schimba predecesorul multimii x
if(cod==2) {if(predecesor(x)==predecesor(y)) g<<"DA\n"; //compara predecesorii multimilor
else g<<"NU\n";}
}
f.close();
g.close();
return 0;}