Pagini recente » Cod sursa (job #195900) | Cod sursa (job #1582211) | Cod sursa (job #3299463) | Cod sursa (job #768583) | Cod sursa (job #1453017)
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
ofstream fout("sortaret.out");
ifstream fin("sortaret.in");
const long int MMAX = 100500;
int n, m, varf;
int viz[MMAX];
vector<int> v[MMAX];
queue<int> q;
void citire()
{
int x, y;
fin >> n >> m;
for(int i=1; i<=m; i++) {
fin >> x >> y;
v[x].push_back(y);
viz[y]++;
}
for(int i=1; i<=n; i++)
if(!viz[i]) q.push(i);
}
void topsort()
{
int yolo;
while(!q.empty()) {
yolo = q.front();
q.pop();
fout << yolo << ' ';
for(int i=0; i<v[yolo].size(); i++) {
viz[v[yolo][i]]--;
if(!viz[v[yolo][i]])
q.push(v[yolo][i]);
}
}
}
int main()
{
citire();
topsort();
fin.close();
fout.close();
return 0;
}