Pagini recente » Cod sursa (job #2392633) | Cod sursa (job #1631118) | Cod sursa (job #498421) | Cod sursa (job #486177) | Cod sursa (job #1834501)
#include <bits/stdc++.h>
using namespace std;
int n, m, p, i, j, x, y, nr, sol1[2000005];
bool viz[2000005], b[2000005], c;
vector <int> v[2000005];
void dfs(int k, bool *cr){
viz[k] = 1;
for(j = 0; j < v[k].size(); j++){
if(!viz[v[k][j]]){
if(b[v[k][j]]){
*cr = 1;
break;
}
else dfs(v[k][j], cr);
}
}
}
int main(){
ifstream cin("berarii2.in");
ofstream cout("berarii2.out");
cin >> n >> m >> p;
for(i = 1; i <= m; i++){
cin >> x >> y;
v[x].push_back(y);
}
for(i = 1; i <= p; i++){
cin >> x;
b[x] = 1;
}
for(i = 1; i <= n; i++){
memset(viz, 0, sizeof(viz));
c = 0;
dfs(i, &c);
if(!c) sol1[++nr] = i;
}
cout << nr << '\n';
for(i = 1; i <= nr; i++) cout << sol1[i] << '\n';
return 0;
}