Pagini recente » Cod sursa (job #2641569) | Cod sursa (job #2423945) | Cod sursa (job #426397) | Cod sursa (job #1432252) | Cod sursa (job #951444)
Cod sursa(job #951444)
using namespace std;
#include <fstream>
#include <vector>
#include <iostream>
#include <string.h>
#include <queue>
int main()
{
int M,N,x,y,i;
vector <int> *graph;
queue <int> Q;
vector <int> ::iterator it;
int *grad;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
in>>N>>M;
grad=new int[N+1];
memset(grad,0,N+1);
graph=new vector<int> [N+1];
for (i=1;i<=N;i++) grad[i]=0;
for (i=1;i<=M;i++)
{
in>>x>>y;
graph[x].push_back(y);
grad[y]++;
}
for (i=1;i<=N;i++)
if (grad[i]==0) Q.push(i);
while (!Q.empty())
{
x=Q.front();
out<<x<<" ";
Q.pop();
for (it=graph[x].begin();it!=graph[x].end();it++)
{
grad[*it]--;
if (grad[*it]==0) Q.push(*it);
}
}
return 0;
}