Cod sursa(job #2227399)

Utilizator alexandru2001alexandru alexandru2001 Data 31 iulie 2018 17:56:34
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <bits/stdc++.h>


using namespace std;
int n;
int m;
vector <int> l[1000005];
queue <int> q;
int suka[1000005];
void nibab(int rudi[1000005])
{
    for (int i=0; i<n; i++){
        rudi[i]=-1;
    }
}
int smek(int rudi[1000005]){
int t=0;
for (int i=0; i<n; i++){
    if (suka[i]==-1){
        t++;
        q.push(i);
        while (!q.empty()){
            int vs=q.front();
            q.pop();
            for (int j=0; j<l[vs].size(); j++){
                if (suka[l[vs][j]]==-1){
                    q.push(l[vs][j]);
                    suka[l[vs][j]]=t;
                }
            }
        }
    }
}
return t;

}




int main()
{
    ifstream f("dfs.in");
    ofstream g("dfs.out");

    f>>n>>m;

for (int j=0; j<m; j++){
    int u,v ;
    f >>u>>v;
    u--;
    v--;
    l[u].push_back(v);
    l[v].push_back(u);
}
    nibab(suka);
    g<<smek(suka);


}