Cod sursa(job #2946728)

Utilizator David_PatranjelDavid Patranjel David_Patranjel Data 25 noiembrie 2022 01:30:25
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.15 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int main()
{
    ifstream fin("disjoint.in");
    ofstream fout("disjoint.out");

    int nodes, ops, op;
    fin>>nodes>>ops;
    vector<int> parents(nodes+1);
    for(int i = 1; i <= nodes; i++){
        parents[i] = i;
    }

    while(ops){
        ops--;
        fin>>op;
        int node1, node2;
        fin>>node1>>node2;
        switch(op){
            case 1:
                if(parents[node1] != parents[node2]){
                    int q = parents[node1];
                    for(int i = 1; i <= nodes; i++){
                        if(parents[i] == q){
                            parents[i] = parents[node2];
                        }
                    }
                }
                break;
            case 2:
                if(parents[node1] == parents[node2]){
                    fout<<"DA"<<endl;
                }else{
                    fout<<"NU"<<endl;
                }
                break;
            default:
                fout<<"Error";
        }
    }

    fin.close();
    fout.close();
    return 0;
}