Pagini recente » Cod sursa (job #1524020) | Cod sursa (job #101832) | Cod sursa (job #199565) | Cod sursa (job #2246346) | Cod sursa (job #2556844)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector <int> muchii[100005];
bool are_tata[100005];
void find(int nod) {
for (unsigned int i = 0; i < muchii[nod].size(); ++i) {
int vecin = muchii[nod][i];
fout << vecin << " ";
if (!muchii[vecin].empty())
find(vecin);
}
}
int main() {
int n, m;
fin >> n >> m;
queue <int> tati;
for (int i = 1; i <= m; ++i) {
int x, y;
fin >> x >> y;
muchii[x].push_back(y);
are_tata[y] = true;
tati.push(x);
}
while (!tati.empty()) { //find root
if (!are_tata[tati.front()]) {
fout << tati.front() << " ";
find(tati.front());
break;
}
tati.pop();
}
return 0;
}