Pagini recente » Cod sursa (job #877012) | Cod sursa (job #517661) | Cod sursa (job #966860) | Cod sursa (job #2369602) | Cod sursa (job #394542)
Cod sursa(job #394542)
#include <fstream>
#include <vector>
#define NMAX 50100
#define pb push_back
using namespace std;
vector<int> A[NMAX];
int N, M, Sorted[NMAX], nSort, Viz[NMAX];
void Citire(void)
{
ifstream fin("sortaret.in");
int i, x, y;
fin >>N >>M;
for (i = 1; i <= M; i++)
{
fin >>x >>y;
A[x].pb(y);
}
fin.close();
}
void DFS(int i)
{
for (int j = 0; j < A[i].size(); j++)
if (!Viz[A[i][j]])
{
int x = A[i][j];
DFS(x);
Sorted[++nSort] = x;
Viz[x] = 1;
}
}
void Rezolva(void)
{
int i;
for (i = 1; i <= N; i++)
if (!Viz[i])
{
DFS(i);
Sorted[++nSort] = i;
Viz[i] = 1;
}
}
void Afiseaza(void)
{
ofstream fout("sortaret.out");
for (int i = N; i >= 1; i--)
fout <<Sorted[i] <<' ';
fout.close();
}
int main()
{
Citire();
Rezolva();
Afiseaza();
return 0;
}