Cod sursa(job #2204478)

Utilizator shantih1Alex S Hill shantih1 Data 16 mai 2018 00:05:00
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <vector>
//https://ocw.cs.pub.ro/courses/pa/laboratoare/laborator-07
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

int n,m,i,a,b,rz[50005],nz,timp;
bool cp[50005],vz[50005];
vector<int> ch[50005];

void gon(int x)
{
	for(int i=0;i<ch[x].size();i++)
	{
		a=ch[x][i];
		if(vz[a]==0)
		{
			vz[a]=1;
			gon(a);
		}
	}
	nz++;	rz[nz]=x;
}

int main() {
	
	fin>>n>>m;
	for(i=1;i<=m;i++)
	{
		fin>>a>>b;
		ch[a].push_back(b);
		cp[b]=1;
	}
	
	for(i=1;i<=n;i++)
		if(cp[i]==0)
		{
			vz[i]=1;
			cp[i]=1;
			gon(i);
		}
	
	for(i=nz;i>=1;i--)
		fout<<rz[i]<<" ";
}