Pagini recente » Cod sursa (job #2372826) | Cod sursa (job #1689207) | Cod sursa (job #1273402) | Cod sursa (job #3282007) | Cod sursa (job #2423430)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector <int> graf[50005];
int grad[50005];
vector <int> coada;
void sortare_top(int N)
{
int i;
for(i = 1;i <=N; i++)
if(grad[i] == 0)
coada.push_back(i);
for(i = 0; i < N; i++)
{
int x = coada[i];
int lim = graf[x].size();
int j;
for(j = 0;j < lim; j++)
{
grad[graf[x][j]]--;
if(grad[graf[x][j]] == 0)
coada.push_back(graf[x][j]);
}
}
}
int main()
{
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int N,M,x,y;
fin >> N >> M;
int i;
for(i = 0;i < M; i++)
{
fin >> x >> y;
graf[x].push_back(y);
grad[y]++;
}
sortare_top(N);
for(i = 0;i < N; i++)
fout << coada[i] << " ";
return 0;
}