Cod sursa(job #1378258)

Utilizator bogobatBerbece Daniel bogobat Data 6 martie 2015 11:15:59
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");

int n,m,op,x,y,grupa[100009];
int maxim,minim;

int main()
{
    f>>n>>m;
    for(int i=1;i<=n;i++) grupa[i]=i;
    while(m){
       f>>op;
       if(op==2){
          f>>x>>y;
          if(grupa[x]==grupa[y]) g<<"DA"<<'\n';
            else g<<"NU"<<'\n';
       }
       if(op==1){
          f>>x>>y;
          if(grupa[x]<grupa[y]){
              maxim=grupa[y];
              minim=grupa[x];
          } else {
              maxim=grupa[x];
              minim=grupa[y];
          }
          for(int i=1;i<=n;i++) if(grupa[i]==maxim) grupa[i]=minim;
       }
       m--;
    }
    return 0;
}