Pagini recente » Borderou de evaluare (job #2685655) | Cod sursa (job #670426) | Cod sursa (job #629361) | Cod sursa (job #1028511) | Cod sursa (job #664521)
Cod sursa(job #664521)
#include <fstream>
using namespace std;
int n, m, PA[100010];
int radacina(int a) {
int r = a, aux;
for(r = a; PA[r] != r; r = PA[r]);
while(PA[a] != a) {
aux = PA[a];
PA[a] = r;
a = aux;
}
return r;
}
int main() {
int i, t, a, b;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
f >> n >> m;
for(i = 1; i <= n; ++i)
PA[i] = i;
for(i = 1; i <= m; ++i) {
f >> t >> a >> b;
if(t == 1)
PA[radacina(a)] = radacina(b);
else if(radacina(a) == radacina(b))
g << "DA\n";
else
g << "NU\n";
}
g.close();
return 0;
}