Pagini recente » Cod sursa (job #2062125) | Cod sursa (job #637806) | Cod sursa (job #266226) | Cod sursa (job #2193880) | Cod sursa (job #2608663)
# 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";
}
}
}