Cod sursa(job #1322211)

Utilizator yololy97Olaru Bogdan-Ioan yololy97 Data 19 ianuarie 2015 21:05:30
Problema Distante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#define N 50001
int n, m, T, source, d[N];
int main(){
    freopen("distante.in", "r", stdin);
    freopen("distante.out", "w", stdout);
    scanf("%d\n", &T);
    for(int i = 1; i <= T; ++i){
        scanf("%d %d %d\n", &n, &m, &source);
        for(int j = 1; j <= n; ++j)
            scanf("%d ", &d[j]);
        int ok = true;
        for(int j = 1; j <= n; ++j){
			int p, q, c;
            scanf("%d %d %d\n", &p, &q, &c);
            if(d[p] > d[q] + c || d[q] > d[p] + c)
                ok = false;
        }
        if(d[source] != 0)
            ok = false;
        printf("%s\n", ok == true ? "DA" : "NU");
    }
    return 0;
}