Pagini recente » Cod sursa (job #567948) | Cod sursa (job #2548554) | Cod sursa (job #1915097) | Cod sursa (job #1305938) | Cod sursa (job #1119618)
#include<fstream>
#include<iostream>
#include<vector>
using namespace std;
vector <int> v[50005];
int N,M,deg[50005],q[50005],a;
void citire() {
ifstream in("sortaret.in");
int i,x,y;
in>>N>>M;
for(i=1;i<=M;i++){
in>>x>>y;
v[x].push_back(y);
deg[y]++;
}
in.close();
}
void solve() {
int x,i,j,vecin;
for(i=1;i<=N;i++)
if(deg[i]==0){
a++;
q[a]=i;
}
for(i=1;i<=N;i++) {
x=q[i];
for(j=0;j<v[x].size();j++) {
vecin=v[x][j];
cout<<vecin<<" "<<x<<'\n';
deg[vecin]--;
if(deg[vecin]==0){
a++;
q[a]=vecin;
}
}
}
}
void afisare() {
ofstream out("sortaret.out");
int i;
for(i=1;i<=N;i++)
out<<q[i]<<' ';
out<<'\n';
out.close();
}
int main() {
citire();
solve();
afisare();
return 0;
}