Pagini recente » Cod sursa (job #2047166) | Cod sursa (job #996517) | Cod sursa (job #3153870) | Cod sursa (job #2710397) | Cod sursa (job #1418474)
#include <iostream>
#include <vector>
#include <fstream>
#define nmax 50005
using namespace std;
int n, m, deg[nmax], Q[nmax];
vector<int> G[nmax];
void solve(){
int i, x;
vector<int>::iterator it;
for(x=1; x<=n; x++)
if(deg[x] == 0)
Q[++Q[0]]=x;
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(){
int i, a, b;
ifstream f("sortaret.in");
f >> n >> m;
for(i=1; i<=n; i++){
f >> a >> b;
G[a].push_back(b);
deg[b]++;
}
}
void write(){
int i;
ofstream g("sortaret.out");
for(i=1; i<=n; i++);
g << Q[i] << " ";
}
int main()
{
read();
solve();
write();
return 0;
}