Pagini recente » Cod sursa (job #3189647) | Cod sursa (job #1765312) | Cod sursa (job #2882162) | Cod sursa (job #53275) | Cod sursa (job #812106)
Cod sursa(job #812106)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
#define MAX_N 50000
vector<int>myvector[MAX_N];
int coada[MAX_N];
int deg[MAX_N];
int N, M;
void read_from_file(){
ifstream f("sortaret.in");
f >> N >> M;
int nod1, nod2;
for(int i=1; i<=M; i++){
f>> nod1 >> nod2;
myvector[nod2].push_back(nod1);
deg[nod1] ++;
}
}
void write_to_file(){
ofstream g("sortaret.out");
for(int i=N; i>0; i--){
g << coada[i] << " ";
}
}
void solve(){
for(int i=1; i<=N; i++){
if(deg[i] == 0){
coada[++coada[0]] = i;
}
}
for(int i=1; i<=N; i++){
int x = coada[i];
for(unsigned int j=0; j<myvector[x].size(); j++){
deg[myvector[x][j]]--;
if(deg[myvector[x][j]] == 0){
coada[++coada[0]] = myvector[x][j];
}
}
}
}
int main(){
read_from_file();
solve();
write_to_file();
return 0;
}