Nu aveti permisiuni pentru a descarca fisierul grader_test9.in
Cod sursa(job #1999905)
| Utilizator | Data | 12 iulie 2017 12:53:38 | |
|---|---|---|---|
| Problema | Sortare topologica | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.74 kb |
#include <fstream>
#include <vector>
#include <iterator>
using namespace std;
vector<int> lista;
void sort(int csucs, vector<int>* utak, bool* notVisited) {
if (!notVisited[csucs]) return;
notVisited[csucs] = false;
for (vector<int>::iterator it = utak[csucs].begin();it != utak[csucs].end();it++)
sort(*it, utak, notVisited);
lista.push_back(csucs);
}
int main() {
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int N, M;
in >> N >> M;
vector<int> *utak = new vector<int>[N];
for (;M;--M) {
int honnan, hova;
in >> honnan >> hova;
utak[honnan - 1].push_back(hova - 1);
}
bool* notVisited = new bool[N];
for (int i = 0;i < N;++i) {
sort(i, utak, notVisited);
out << i + 1 << " ";
}
}