Pagini recente » Cod sursa (job #2322904) | Cod sursa (job #2286193) | Cod sursa (job #1496450) | Cod sursa (job #1178551) | Cod sursa (job #2560349)
///sortare topologica in ordine lexicografica
#include <fstream>
#include <vector>
#define N 50002
#include <queue>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector <int> graph[N];
priority_queue <int, vector <int> > q;
int grad[N];
void sortt()
{
int nod;
while(!q.empty())
{
nod=-q.top();
q.pop();
g<<nod<<' ';
for(int i=0;i<graph[nod].size();++i)
{
int vee=graph[nod][i];
--grad[vee];
if(!grad[vee])
q.push(-vee);
}
}
}
int main()
{
int n,m,x,y;
f>>n>>m;
while(m--)
{
f>>x>>y;
graph[x].push_back(y);
grad[y]++;
}
for(int i=1;i<=n;++i)
if(!grad[i])
q.push(-i);
sortt();
f.close();
g.close();
return 0;
}