Pagini recente » Cod sursa (job #604806) | Cod sursa (job #542828) | Cod sursa (job #471421) | Cod sursa (job #1994064) | Cod sursa (job #2012010)
#include <fstream>
#include <vector>
#include <queue>
#define in "sortaret.in"
#define out "sortaret.out"
#define N 50003
using namespace std;
ifstream fin(in);
ofstream fout(out);
vector<int> v[N];
queue<int> coada;
int n,m,x,y;
int grint[N];
void solve()
{
int x;
for(int i=1; i<=n; ++i)
if(!grint[i])
coada.push(i);
vector<int>::iterator it;
for(int i=0; i<n; ++i)
{
x = coada.front();
fout<<x<<" ";
coada.pop();
for(it = v[x].begin(); it != v[x].end(); ++it)
if(--grint[*it] == 0) coada.push(*it);
}
}
int main()
{
fin>>n>>m;
while(m--)
{
fin>>x>>y;
v[x].push_back(y);
++grint[y];
}
solve();
fin.close(); fout.close();
return 0;
}