Pagini recente » Cod sursa (job #852977) | Cod sursa (job #2493888) | Cod sursa (job #307481) | Cod sursa (job #2704649) | Cod sursa (job #524929)
Cod sursa(job #524929)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,i,j,k,x,v;
int V[50100],D[50100];
vector <int> M[50100];
void citire()
{
int a,b;
f>>n>>m;
for (i=1;i<=m;i++)
{
f>>a>>b;
M[a].push_back(b);
D[b]++;
}
}
void rezolva()
{
for (i=1;i<=n;i++)
if (D[i]==0)
{
v++;
V[v]=i;
}
for (i=1;i<=n;i++)
{
x=V[i];
for (k=0;k<M[x].size();k++)
{
D[M[x][k]]--;
if (D[M[x][k]]==0)
{
v++;
V[v]=M[x][k];
}
}
}
}
void scrie()
{
for (i=1;i<=n;i++)
g<<V[i]<<" ";
}
int main()
{
citire();
rezolva();
scrie();
f.close();
g.close();
return 0;
}