Pagini recente » Cod sursa (job #1799263) | Rezultatele filtrării | Cod sursa (job #3244384) | Cod sursa (job #1796705) | Cod sursa (job #431166)
Cod sursa(job #431166)
#include <cstdio>
#include <vector>
#include <algorithm>
#define adauga_pe .push_back
#define foloseste using
#define spatierea namespace
#define standard std
#define pentru(i,a,n) for (int i=a; i<=n; i++)
#define citeste scanf
#define scrie printf
#define deschide freopen
#define citire "r"
#define scriere "w"
#define intrare stdin
#define iesire stdout
#define numar_intreg int
#define MAX 50010
#define numar_logic bool
#define intoarce return
#define daca if
#define functie void
#define meniu int main
#define creste ++
#define si &&
#define este ==
#define pentru_fiecare for_each
#define adevarat true
#define inceput begin
#define sfarsit end
#define fals false
#define devine =
foloseste spatierea standard;
vector<numar_intreg> G[MAX];
numar_intreg Gr[MAX];
numar_logic U[MAX];
numar_intreg n,m,i,x,y;
functie parcurgere_in_adancime(numar_intreg x)
{
daca (U[x] este adevarat) intoarce;
U[x] devine adevarat;
pentru_fiecare (G[x].inceput(), G[x].sfarsit(), parcurgere_in_adancime);
scrie("%d ", x);
}
meniu()
{
deschide("sortaret.in", citire,intrare);
deschide("sortaret.out",scriere,iesire);
citeste("%d %d", &n, &m);
pentru(i,0,m-1)
{
citeste("%d %d", &x, &y);
G[y] adauga_pe (x);
Gr[x] creste;
}
pentru(i,1,n)
daca ( U[i] este fals si Gr[i] este 0 ) parcurgere_in_adancime(i);
intoarce 0;
}