Pagini recente » Cod sursa (job #1738326) | Cod sursa (job #677522) | Cod sursa (job #1705225) | Cod sursa (job #195934) | Cod sursa (job #2475132)
#include <cstdio>
#include <vector>
using namespace std;
const int NMAX=10005;
bool viz[2][NMAX];
bool g[2][NMAX][NMAX];
int deg[NMAX];
//int top[NMAX];
int n, m;
void sortare_topologica()
{
int t=0;
for(int j=1; j<=n; j++)
{
for(int i=1; i<=n; i++)
{
if (viz[0][i]==0 && deg[i]==0)
{
viz[0][i]=1;
t++;
//top[t]=i;
printf("%d ", i);
for(int k=1; k<=n; k++)
{
if (g[0][i][k]==1)
deg[k]--;
}
break;
}
}
}
}
int main()
{
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
int u, v, cc, i, j, k;
scanf("%d%d", &n, &m);
for(i=1; i<=m; i++)
{
scanf("%d%d", &u, &v);
g[0][u][v]=1;
deg[v]++;
g[1][v][u]=1;
}
//cc=CTC();
//RESET();
sortare_topologica();
return 0;
}