Pagini recente » Cod sursa (job #371157) | Cod sursa (job #276932) | Cod sursa (job #37999) | Cod sursa (job #1932111) | Cod sursa (job #3286216)
/*#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("zaruri.in");
ofstream fout("zaruri.out");
#define NMAX 3000
int MOD = 1000003;
int q, n, st, dr, dp[2][6 * NMAX + 1], rez[6 * NMAX + 1], ncurr = 1;
struct Zar
{
int n, st, dr, poz, s;
}v[100001];
int comp1(Zar a, Zar b)
{
return a.n < b.n;
}
int comp2(Zar a, Zar b)
{
return a.poz < b.poz;
}
int main()
{
fin >> q;
for(int i = 1; i <= q; i++)
{
fin >> v[i].n >> v[i].st >> v[i].dr;
v[i].poz = i;
v[i].s = 0;
}
sort(v + 1, v + q + 1, comp1);
for(int i = 1; i <= 6; i++)
dp[0][i] = 1;
for(int l = 1; l <= q; l++)
{
for(int i = ncurr; i <= v[l].n - 1; i++)
for(int j = 1; j <= 6 * NMAX + 1; j++)
for(int f = 1; f <= 6; f++)
if(j > f)
dp[i % 2][j] = (dp[i % 2][j] + dp[(i - 1) % 2][j - f]) % MOD;
if(v[l].n == v[l - 1].n)
v[l].s = (MOD + rez[v[l].dr] - rez[v[l].st - 1]) % MOD;
else{
for(int i = 1; i <= 6 * NMAX + 1; i++)
rez[i] = dp[(v[l].n - 1) % 2][i];
for(int i = 1; i <= 6 * NMAX + 1; i++)
rez[i] = (rez[i - 1] + rez[i]) % MOD;
v[l].s = (MOD + rez[v[l].dr] - rez[v[l].st - 1]) % MOD;
ncurr = v[l].n;
}
}
sort(v + 1, v + q + 1, comp2);
for(int i = 1; i <= q; i++)
fout << v[i].s << '\n';
return 0;
}
*/
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, v[50001], viz[50001], k, x, y;
vector<int> G[50001];
void DFS(int nod)
{
viz[nod] = 1;
for(int i = 0; i < G[nod].size(); i++)
{
if(viz[G[nod][i]] == 0)
{
DFS(G[nod][i]);
}
}
k++;
v[k] = nod;
}
int main()
{
fin >> n >> m;
for(int i = 1; i <= m; i++)
{
fin >> x >> y;
G[x].push_back(y);
}
for(int i = 1; i <= n; i++)
if(viz[i] == 0)
DFS(i);
for(int i = k; i >= 1; i--)
fout << v[i] << " ";
return 0;
}