Pagini recente » Cod sursa (job #167278) | Cod sursa (job #1810639) | Cod sursa (job #1553727) | Cod sursa (job #3256728) | Cod sursa (job #940570)
Cod sursa(job #940570)
#include <fstream>
#include <stdio.h>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std ;
#define MAXNR 50100
vector<int> g[MAXNR];
int viz[MAXNR],gol[MAXNR];
int N,M;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
void citire(){
cin >> N >> M ;
// init
for (int i = 0 ; i <= N ; i++){
gol[i]=0;
viz[i]=0;
}
// citire
int a,b;
for (int i = 0 ; i < M ; i++) {
cin >> a >> b ;
g[a-1].push_back(b-1);
gol[b-1]++;
}
}
void rezolvare(void){
int i,j,k;
for(i=0 ; i < N ; i ++) //pentru a verifica sa am N noduri afisate
for(j=0;j<N;j++) // pentru a gasit primul nod bun
if (gol[j]==0 && viz[j]==0){
viz[j]=1;
cout << j+1 <<" ";
for(k=0;k < g[j].size();k++) //pentru a scadea cele care nu mai au parinte
gol[ g[i][k] ]--;
break;
}
}
int main(){
citire();
rezolvare();
cout.flush();
return 0 ;
}