Pagini recente » Cod sursa (job #1558282) | Cod sursa (job #2046982) | Cod sursa (job #2567182) | Cod sursa (job #3129789) | Cod sursa (job #1015362)
#include <stdio.h>
#include <vector>
using namespace std;
FILE *f=fopen("sortaret.in","r");
FILE *g=fopen("sortaret.out","w");
vector<int>l[50005],c;
int n,m,x,y,i,use[50005],v[50005],nr;
void df(vector<int>c)
{
for (vector<int>::iterator it=c.begin();it!=c.end();++it,use[*it]==0)
{
if (use[*it]==0){
use[*it]=1;
df(l[*it]);
v[++nr]=c.back();use[c.back()]=1;}
}
}
int main()
{
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++)
{
fscanf(f,"%d%d",&x,&y);
l[x].push_back(y);
}
for(i=1;i<=n;i++)
if (use[i]==0){df(l[i]);v[++nr]=i;}
fclose(g);
return 0;
}