Pagini recente » Cod sursa (job #2230240) | Cod sursa (job #3147594) | Cod sursa (job #395688) | Cod sursa (job #1191652) | Cod sursa (job #650831)
Cod sursa(job #650831)
#include<fstream>
#include<vector>
#define MAXN 50001
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int N,M,deg[MAXN],Q[MAXN];
vector<int>G[MAXN];
void solve()
{
int i,x;
vector<int>::iterator it;
for(i=1;i<=N;i++)
if(deg[i]==0) Q[++Q[0]]=i;
for(i=1;i<=N;i++)
{
x=Q[i];
for(it=G[x].begin(); it!=G[x].end(); it++)
{
deg[*it]--;
if(deg[*it]==0)
Q[++Q[0]]=*it;
}
}
}
void read_data()
{
int i,x,y;
in >> N >> M;
for(i = 1; i <= M; i++)
{
in >> x >> y;
G[x].push_back(y); deg[y]++;
}
}
void write_data()
{
int i;
for(i=1;i<=N;i++)
out<<Q[i]<<" ";
}
int main()
{
read_data();
solve();
write_data();
}