Pagini recente » Cod sursa (job #3240528) | Cod sursa (job #492696) | Cod sursa (job #2739667) | Cod sursa (job #2347241) | Cod sursa (job #1971678)
#include<stdio.h>
#include<vector>
#define N 50001
using namespace std;
FILE*f = fopen("sortaret.in", "r");
FILE*g = fopen("sortaret.out", "w");
vector<int> v[N];
int gr[N], q[N];
int main(){
int n, m;
fscanf(f, "%d%d", &n, &m);
for(int i = 1; i <= m; ++i)
{
int x, y;
fscanf(f, "%d%d", &x, &y);
v[x].push_back(y);
++gr[y];
}
for(int i = 1; i <= n; ++i)
{
if(!gr[i])
{
q[++q[0]] = i;
}
}
for(int i = 1; i <= n; ++i)
{
int vertice = q[i];
for(int j = 0; j < v[vertice].size(); ++j)
{
if(--gr[v[vertice][j]] == 0)
{
q[++q[0]] = v[vertice][j];
}
}
}
for(int i = 1; i <= n; ++i)
{
fprintf(g, "%d ", q[i]);
}
fclose(f);
fclose(g);
return 0;
}