Pagini recente » Cod sursa (job #2624978) | Cod sursa (job #3165786) | Cod sursa (job #614150) | Cod sursa (job #3228353) | Cod sursa (job #952365)
Cod sursa(job #952365)
//
// sortaret.cpp
// Sortare Topologica
//
// Created by Andrei Constantinescu on 22.05.2013.
// Copyright (c) 2013 Andrei Constantinescu. All rights reserved.
//
#include<fstream>
#include<vector>
using namespace std;
int n, m, i, x, y, vizitate[50], coada[50], nr[50], ind;
vector<int> vec[50];
//parcurgerea df catre nodurile terminale ale grafului
void df(int nod) {
vizitate[nod] = 1;
for (int i = 0; i < nr[nod]; i ++)
if (!vizitate[vec[nod][i]])
df(vec[nod][i]);
//adaugarea nodului intr-o coada pentru a stabilii sortara topologica
coada[ind++] = nod;
}
int main() {
ifstream f("sortaret.in");
ofstream g("sortaret.out");
f>>n>>m;
for (i = 1; i <= m; i++) {
f>>x>>y;
nr[x] ++;
vec[x].push_back(y);
}
for (i = 1; i <= n; i ++)
if (!vizitate[i])
df(i);
for (i = n; i; i --)
g<<coada[i]<<" ";
}