Pagini recente » Cod sursa (job #862901) | Cod sursa (job #3170901) | Cod sursa (job #877608) | Cod sursa (job #2205641) | Cod sursa (job #669160)
Cod sursa(job #669160)
#include<stdio.h>
#include<vector>
#include<queue>
using namespace std;
FILE * f = fopen("sortaret.in","r");
FILE * g = fopen("sortaret.out","w");
int n,m,now,x,y;
int pred[50001];
vector<int> L[50001];
queue<int> Q;
int main(){
fscanf(f,"%d%d",&n,&m);
for(int i=1;i<=m;i++){
fscanf(f,"%d%d",&x,&y);
L[x].push_back(y);
pred[y]++;
}
for(int i=1;i<=n;i++)
if(pred[i]==0)
Q.push(i);
while(!Q.empty()){
now = Q.front();
fprintf(g,"%d ",now);
for(vector<int> :: iterator it = L[now].begin() ; it != L[now].end(); it ++){
pred[*it]--;
if(pred[*it] == 0){
Q.push(*it);
}
}
Q.pop();
}
fclose(f);
fclose(g);
return 0;
}