Cod sursa(job #2945254)

Utilizator GhiuzanuEdward Ghiuzan Ghiuzanu Data 23 noiembrie 2022 17:16:45
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

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

void op1(vector<vector<int>>& multimi, int x, int y){
    multimi[x].push_back(y);
    for (int i = 1; i < multimi[y].size(); ++i) {
        multimi[x].push_back(multimi[y][i]);
    }
    multimi[y].push_back(x);
    for (int i = 1; i < multimi[x].size(); ++i) {
        multimi[y].push_back(multimi[x][i]);
    }
}
void op2(vector<vector<int>>& multimi, int x, int y){
    int i;
    for (i = 1; i < multimi[x].size(); ++i) {
        if (multimi[x][i] == y){
            fout<<"DA"<<endl;
            break;
        }
    }
    if (i == multimi[x].size())
        fout<<"NU"<<endl;
}

int main() {
    int n, m, cod, x, y;
    vector<vector<int>> multimi;
    vector<int> aux(1,0);
    fin>>n>>m;
    multimi.resize(n + 1, aux);
    for (int i = 0; i < m; ++i) {
        fin>>cod>>x>>y;
        if (cod == 1){
            op1(multimi, x, y);
        }
        else{
            op2(multimi, x, y);
        }
    }
    return 0;
}