Pagini recente » Cod sursa (job #1019896) | Istoria paginii runda/simularerepublicanaunu/clasament | Cod sursa (job #500785) | Cod sursa (job #2653273) | Cod sursa (job #920722)
Cod sursa(job #920722)
#include<cstdio>
#include<vector>
#define MAX_SIZE 50005
FILE *f=fopen("sortaret.in","r");
FILE *g=fopen("sortaret.out","w");
using namespace std;
vector <int> G[MAX_SIZE];
vector <int> order[MAX_SIZE];
vector <int> ::iterator it;
int used[MAX_SIZE];
int n,m;
void read( void )
{
fscanf(f,"%d%d",&n,&m);
int x,y;
for(int i(1); i <= m; ++i )
{
fscanf(f,"%d%d",&x,&y);
G[x].push_back(y);
}
}
void DF(int node )
{
used[node]=1;
for(it=G[node].begin();it!=G[node].end(); ++it)
if(!used[*it])
DF(*it);
order[0].push_back(node);
}
void solve ( void )
{
for(int i(1); i <= n ; ++i )
if(!used[i])
DF(i);
}
void write( void )
{
for(it=order[0].end()-1;it!=order[0].begin();--it)
fprintf(g,"%d",*it);
fprintf(g,"%d",*it);
fclose(g);
}
int main( void )
{
read();
solve();
write();
return 0;
}