Pagini recente » Cod sursa (job #1543480) | Cod sursa (job #1118049) | Cod sursa (job #1631745) | Cod sursa (job #1055235) | Cod sursa (job #776660)
Cod sursa(job #776660)
#include <fstream>
#include <list>
#include <vector>
using namespace std;
int N, M, j = -1;
list <int> in[50005];
list <int> out[50005];
int v[50005];
vector <int> setlol;
void Citire () {
ifstream fin ("sortaret.in");
fin >> N >> M;
int a, b;
for (int i = 0; i < M; i++)
{
fin >> a >> b;
out[a].push_back (b);
in[b].push_back (a);
}
fin.close ();
for (int i = 1; i <= N; i++)
if (in[i].empty ()) setlol.push_back (i);
}
void Business () {
int a, b, c;
ofstream fout ("sortaret.out");
while (!setlol.empty ())
{
a = setlol.back ();
setlol.pop_back ();
fout << a << " ";
while (!out[a].empty ())
{
b = out[a].back ();
in[b].remove (a);
if (in[b].empty ()) setlol.push_back (b);
out[a].pop_back ();
}
}
fout.close ();
}
int main () {
Citire ();
Business ();
return 0;
}