Cod sursa(job #875558)

Utilizator caliuxSegarceanu Calin caliux Data 10 februarie 2013 13:40:23
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

struct regula{
    int x, y;
} reguli[100000];

bool cmp(regula a, regula b){
    if(a.y == b.y){
        return a.x< b.x;
    }
    return a.y < b.y;
}
int poza, pozb, poz[50000];
int i, aux;
int main(){
    freopen("sortaret.in", "r", stdin);
    freopen("sortaret.out", "w", stdout);
    int N, M;
    scanf("%d%d", &N, &M);
    for(i = 1; i <= M; i++){
        scanf("%d%d", &reguli[i].x, &reguli[i].y);
    }
    for(i = 1; i <= N; i++){
        poz[i] = i;
    }
    for(i = 1; i <= M; i++){
        poza = reguli[i].x;
        pozb = reguli[i].y;
        if(poz[poza] < poz[pozb]){
            aux = poz[poza];
            poz[poza] = poz[pozb];
            poz[pozb] = aux;
        }
    }
    for(i = 1; i <= N; i++){
        printf("%d ", poz[i]);
    }
}