Cod sursa(job #2608663)

Utilizator Bogdan1999Draghici Bogdan Bogdan1999 Data 1 mai 2020 17:30:29
Problema Componente tare conexe Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
# include <fstream>
# include <queue>
# include <vector>

using namespace std;

int N, M, K;
bool viz[1000005];
queue <int> Q;
vector <int> G[1000005];

int main (void) {
    ifstream fin (berarii2.in);
    ofstream fout (berarii2.out);

    fin >> N >> M >> K;
    for (int i = 1, x, y; i <= M; ++i) {
        fin >> x >> y;
        G[y].push_back (x);
    }

    for (int i = 1, x; i <= K; ++i) {
        fin >> x;
        Q.push (x), viz[x] = 1;
    }

    for (; Q.size (); Q.pop ()) {
        int act = Q.front ();
        for (vector<int> :: iterator it = G[act].begin (); it != G[act].end (); ++it) {
            if (viz[*it]) continue;
                viz[*it] = 1, Q.push (*it);
        }
    }

    int sol = 0;
    for (int i = 1; i <= N; ++i) {
        if (!viz[i]) {
            sol++;
        }
    }
    fout << sol << "\n";
    for (int i = 1; i <= N; ++i) {
        if (!viz[i]) {
            fout << i << "\n";
        }
    }
}