Pagini recente » Cod sursa (job #2398673) | Cod sursa (job #187593) | Cod sursa (job #134713) | Cod sursa (job #836519) | Cod sursa (job #730116)
Cod sursa(job #730116)
#include <fstream>
#include <vector>
using namespace std;
const int MAX = 50050;
vector<int> v[MAX];
int grad[MAX], q[MAX], n, m;
void citire()
{
ifstream in("sortaret.in");
int x, y;
in>>n>>m;
for(int i = 1; i <= m; i++)
{
in>>x>>y; v[x].push_back(y); grad[y]++;
}
in.close();
}
void solve()
{
int x;
for(int i = 1; i <= n; i++)
if(!grad[i])
q[++q[0]] = i;
for(int i = 1; i <= n; i++)
{
x = q[i];
for(size_t j = 0; j < v[x].size(); j++)
{
grad[v[x][j]]--;
if(!grad[v[x][j]])
q[++q[0]] = v[x][j];
}
}
}
void afisare()
{
ofstream out("sortaret.out");
for(int i = 1; i <= n; i++)
out<<q[i]<<" ";
out.close();
}
int main()
{
citire();
solve();
afisare();
return 0;
}