Pagini recente » Profil florinhaja | Cod sursa (job #12345) | Cod sursa (job #1272569) | Cod sursa (job #1873886) | Cod sursa (job #409618)
Cod sursa(job #409618)
#include<fstream>
#include<vector>
//#include<algorithm>
#define NMAX 50003
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<int>A[NMAX];
struct noduri{int n; int t2;} nod[NMAX];
int n,m,i,x,y,j,t,vz[NMAX];
vector<int>L;
void dfs(int);
int condsort(noduri,noduri);
int main()
{
fin>>n>>m;
for (i=1;i<=m;i++)
{
fin>>x>>y;
A[x].push_back(y);
}
for (i=1;i<=n;i++)
nod[i].n=i;
t=1; //0-ALB 1-GRI 2-NEGRU
for (i=1;i<=n;i++)
if (!vz[i])
dfs(i);
//sort(nod+1,nod+n+1,condsort);
for (i=L.size()-1;i>=0;i--)
fout<<L[i]<<' ';
fout.close();
return 0;}
void dfs(int x)
{int i;
vz[x]=1;
for (i=0;i<A[x].size();i++)
if (!vz[A[x][i]])
{
++t;
dfs(A[x][i]);
}
++t;
nod[x].t2=t;
L.push_back(x);
}
//int condsort(noduri x, noduri y){if (x.t2>y.t2) return 1; return 0;}