Pagini recente » Cod sursa (job #1766680) | Cod sursa (job #319729) | Cod sursa (job #284631) | Cod sursa (job #575086) | Cod sursa (job #1139124)
#include <iostream>
#include <fstream>
#include <list>
#include <vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
typedef list<int> list_of_integers;
int tick=0;
void dfs(int k, vector<list_of_integers> &nodes, vector<int> &ticks)
{
//cout<<k<<endl;
if(ticks.at(k)) return;
ticks.at(k) = ++tick;
for(list<int>::iterator it = nodes.at(k).begin();it!=nodes.at(k).end();it++)
{
if(!ticks.at((*it))) dfs((*it),nodes,ticks);
}
}
int main()
{
int n,m;
fin>>n>>m;
vector<list_of_integers> nodes (n+2);
vector<int> ticks(n+2,0);
for(int i=1;i<=m;i++)
{
int x,y;
fin>>x>>y;
nodes.at(x).push_back(y);
}
for(int i=1;i<=n;i++)
dfs(i,nodes,ticks);
for(int i=1;i<=n;i++) fout<<ticks.at(i)<<" ";
}