Pagini recente » Cod sursa (job #467967) | Cod sursa (job #2127867) | Cod sursa (job #1679538) | Cod sursa (job #217622) | Cod sursa (job #1926341)
#include <fstream>
#define NMAX 1000
using namespace std;
ifstream fin ("sort.in");
ofstream fout ("sort.out");
int G[NMAX][NMAX], nivel[NMAX], grad[NMAX];
int n, m, nr, niv;
void citire();
void rez();
void afisare();
int main()
{
int i, j;
citire();
while(nr<n){
++niv;
for(i=1; i<=n; i++)
if(grad[i]==0){
nivel[i]=niv;
nr++;
grad[i]--;
}
for(i=1; i<=n; i++)
if(nivel[i]==niv)
for(j=1; j<=G[i][0]; j++)
grad[G[i][j]]--;
}
afisare();
return 0;
}
void citire()
{
int i, vf1, vf2;
fin>>n>>m;
for(i=1; i<=m; i++){
fin>>vf1>>vf2;
G[vf1][0]++;
G[vf1][G[vf1][0]]=vf2;
grad[vf2]++;
}
}
void afisare()
{
int i;
for(i=1; i<=n; i++)
fout<<i<<' ';
}