Pagini recente » Cod sursa (job #2691215) | Cod sursa (job #1038295) | Cod sursa (job #1871512) | Cod sursa (job #75428) | Cod sursa (job #2647533)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
const int NMAX = 50000;
vector <int> graf[1 + NMAX];
queue <int> q;
int grad_intrare[1 + NMAX];
ifstream in("sortaret.in");
ofstream out("sortaret.out");
void sort_t()
{
while(!q.empty())
{
int nod = q.front();
out << nod << ' ';
q.pop();
for (int i = 0; i < graf[nod].size(); i++)
{
int vecin = graf[nod][i];
grad_intrare[vecin]--;
if (grad_intrare[vecin] == 0)
{
q.push(vecin);
}
}
}
}
int main()
{
int n, m, a, b;
in >> n >> m;
for (int i = 1; i <= m; i++)
{
in >> a >> b;
graf[a].push_back(b);
grad_intrare[b]++;
}
for (int i = 1; i <= n; i++)
{
if (grad_intrare[i] == 0)
{
q.push(i);
}
}
sort_t();
return 0;
}