Cod sursa(job #2741768)

Utilizator alexandru021Alexandru Gabriel alexandru021 Data 18 aprilie 2021 21:05:23
Problema Sortare topologica Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include<fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int a[5001][5001],x,y,n, gin[50000],r,i,j;
int main(){
	int c[50000],p,u;
	f>>n>>r;
	for(i=0;i<r;i++)
	{
		f>>x>>y;
		a[x][y]=1;
		gin[y]++;
	}
	//adaugam toate elementele cu grad intern 0 in coada c
	p=0;u=-1;
	for(i=1;i<=n;i++)
		if(gin[i]==0)
			{
				u++;  c[u]=i;
			}
	while(p<=u){
		x=c[p]; p++;
		g<<x<<" ";
		for(j=1;j<=n;j++)
			if(a[x][j]==1){
				gin[j]--;
				if(gin[j]==0){
					u++;
					c[u]=j;
				}
			}
	}
}