Cod sursa(job #1902440)

Utilizator delta_wolfAndrei Stoica delta_wolf Data 4 martie 2017 16:41:35
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <cstdio>
#include<vector>
#include<deque>
using namespace std;
int n,m,p,k,viz[1000001];
vector<int>graf[1000001];
deque<int>V;

void dfs(int i)
{
    viz[i]=1;
    while(!graf[i].empty())
    {
        if(!viz[graf[i].back()])
            dfs(graf[i].back());
        graf[i].pop_back();
    }
}
int main()
{
    freopen("berarii2.in","r",stdin);
    freopen("berarii2.out","w",stdout);
    scanf("%d%d%d",&n,&m,&p);
    for(int i=1,x,y;i<=n;i++)
    {
        scanf("%d%d",&x,&y);
        graf[y].push_back(x);
    }

    for(int i=1,x;i<=n;i++)
    {
        scanf("%d",&x);
        if(!viz[x])
            dfs(x);
    }
    for(int i=1;i<=n;i++)
        if(!viz[i])k++,V.push_back(i);
    printf("%d\n",k);
    while(!V.empty())
        printf("%d\n",V.front()),V.pop_front();
    return 0;
}