Pagini recente » Cod sursa (job #1307475) | Cod sursa (job #2524133) | Cod sursa (job #777162) | Cod sursa (job #3179124) | Cod sursa (job #763268)
Cod sursa(job #763268)
#include<stdio.h>
#include<vector>
using namespace std ;
FILE *f , *g ;
int n , m ,l[50001] , np[50001] , viz[50001] ;
vector<int> a[50001];
vector<int>::iterator it;
void citire();
void solve();
void tipar();
int main()
{
citire();
solve();
tipar();
return 0;
}
void citire()
{
int x , y;
f=fopen("sortaret.in" , "r" );
fscanf(f , "%d%d" , &n , &m );
for(int i = 1 ; i<= m ; ++i )
{
fscanf(f , "%d%d" , &x , &y );
a[x].push_back(y);
np[y]++;
}
fclose(f);
}
void solve()
{
for(int i = 1 ; i<= n ; ++i )
if(!np[i])
{
l[++l[0]] = i;
viz[i] = 1;
}
for(int i = 1 ; i<= n ; ++i )
{
for( it = a[l[i]].begin() ; it < a[l[i]].end() ; ++it )
{
np[*it]--;
if(np[*it] == 0)
l[++l[0]] = *it;
}
}
}
void tipar()
{
g=fopen("sortaret.out" , "w" );
for(int i = 1 ; i<= n ; ++i )
fprintf(g , "%d " , l[i] );
fclose(g);
}