Pagini recente » Cod sursa (job #1265192) | Cod sursa (job #687757) | Cod sursa (job #1283857) | Cod sursa (job #2681744) | Cod sursa (job #2422579)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
vector <int> graft[100005];
vector <int> graf[100005];
vector <int> coada;
int dist[100005];
void Sortaret(int N)
{
int i,lim,x;
for(i=1;i<=N;i++)
if(graft[i].empty()==1)
{
coada.push_back(i);
}
for(i=0;i<N;i++)
{
x=coada[i];
lim=graf[x].size();
for(int j=0;j<lim;j++)
{
dist[graf[x][j]]--;
if(dist[graf[x][j]]==0)
coada.push_back(graf[x][j]);
}
}
}
int main()
{
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int N,M,i,x,y;
in>>N>>M;
for(i=1;i<=M;i++)
{
in>>x>>y;
graf[x].push_back(y);
graft[y].push_back(x);
dist[y]++;
}
Sortaret(N);
for(i=0;i<N;i++)
out<<coada[i]<<" ";
return 0;
}