Cod sursa(job #1879908)

Utilizator sandupetrascoPetrasco Sandu sandupetrasco Data 15 februarie 2017 11:23:29
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>
#define IOS ios_base::sync_with_stdio(0);
#define tie cin.tie(0);
#define mp make_pair
#define ll long long
#define PII pair<int, int>
#define PLL pair<ll, ll>
#define x first
#define y second
#define zeros(x) ( (x ^ (x - 1)) & x )
 
using namespace std;

int n, m, cnt, x, y;
bool u[100100];
vector < int > V[100100], Q;

void dfs(int x)
{
    if (u[x]) return ;
    u[x] = 1;
    for (auto it : V[x])
        dfs(it);
    Q.push_back(x);
}

int main(){
    IOS tie
    ifstream cin("sortaret.in");
    ofstream cout("sortaret.out");
    cin >> n >> m;
    for (int i = 1; i <= m; i++)
    {
        cin >> x >> y;
        V[x].push_back(y);
    }
    for (int i = 1; i <= n; i++)
        dfs(i);
    for (int i = Q.size() - 1; i >= 0; i--)
        cout << Q[i] << " ";
	cerr << "Fucking time elapsed: " << clock() * 1000.0 / CLOCKS_PER_SEC << " ms" << '\n';
    return 0;
}