Pagini recente » Cod sursa (job #2149594) | Cod sursa (job #2149599) | Cod sursa (job #132098) | Cod sursa (job #784302) | Cod sursa (job #453749)
Cod sursa(job #453749)
#include <fstream>
#include <list>
using namespace std;
ifstream fin; ofstream fout;
list <long> a[50000],b[50000],c,d;
list <long>::iterator it;
long n,m,i,x,y,k;
int main () {
fin.open ("sortaret.in"); fout.open ("sortaret.out");
fin>>n>>m;
for (i=0; i<m; i++) {
fin>>x>>y;
a[x].push_back (y);
b[y].push_back (x);
}
for (i=1; i<=n; i++) {
a[i].sort (); b[i].sort ();
a[i].unique ();
b[i].unique ();
}
for (i=1; i<=n; i++) if (b[i].empty ()) c.push_back (i); //crearea S
while (!c.empty ()) {
k=c.front ();
c.pop_front ();
d.push_back (k);
for (it=a[k].begin (); it!=a[k].end (); it++) {
b[*it].remove (k);
if (b[*it].empty ()) c.push_back (*it);
}
}
for (it=d.begin (); it!=d.end (); it++) fout<<*it<<" ";
fout<<endl;
fin.close (); fout.close ();
return 0;
}