Pagini recente » Cod sursa (job #1695013) | Cod sursa (job #2270142) | Cod sursa (job #2670450) | Cod sursa (job #2375355) | Cod sursa (job #2615991)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
const int NMAX = 100005;
vector <int> X[NMAX];
int CC[NMAX];
int N,M;
void adaugaMuchie(int a,int b)
{
int fost=CC[b],lungime=X[CC[b]].size();
for(unsigned int i=0;i<lungime;i++){
int nodCurent=X[fost][i];
X[CC[a]].push_back(nodCurent);
CC[nodCurent]=CC[a];
}
}
string aceasiComponenta(int a,int b)
{
if(CC[a]==CC[b]){
return "DA";
}else{
return "NU";
}
}
int main()
{
f>>N>>M;
for(int i=1;i<=N;i++){
CC[i]=i;
X[i].push_back(i);
}
while(M){
int op;
f>>op;
if(op==1){
int a,b;
f>>a>>b;
adaugaMuchie(a,b);
}else{
int a,b;
f>>a>>b;
g<<aceasiComponenta(a,b)<<'\n';
}
M--;
}
f.close();
g.close();
return 0;
}