Cod sursa(job #1297439)

Utilizator pavlov.ionPavlov Ion pavlov.ion Data 21 decembrie 2014 23:35:54
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<cstdio>
#include<vector>
#include<algorithm>
#define MAXN 1000005
#define pb push_back
using namespace std;
int M,P,X,Y,N,k;
vector<int> G[MAXN],GT[MAXN];
int viz[MAXN],B;
void DFS(int nod){
	int i;
		viz[nod]=1;
	for(i=0;i<GT[nod].size();i++)
		if(!viz[GT[nod][i]]){
						DFS(GT[nod][i]);
		}
}
int main(){
int i;
freopen("berarii2.in","r",stdin);
freopen("berarii2.out","w",stdout);
scanf("%d%d%d",&N,&M,&P);
	for(i=1;i<=M;i++){
		scanf("%d%d",&X,&Y);
		G[X].pb(Y);
		GT[Y].pb(X);
	}
for(i=1;i<=P;i++){
			scanf("%d",&B);
			DFS(B);
}
for(i=1;i<=N;i++)
	if(!viz[i]) k++;
printf("%d\n",k);
for(i=1;i<=N;i++)
	if(!viz[i]) printf("%d\n",i);
return 0;
}