Cod sursa(job #947524)

Utilizator mitrutstrutMitrea Andrei Ionut mitrutstrut Data 7 mai 2013 18:42:42
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<cstdio>
 
#define Nmax 50001
 
int N, M, S, D[Nmax];
 
int main() {
    freopen("distante.in","r",stdin);
    freopen("distante.out","w",stdout);
 
    int T, i, j, c;
    bool ok;
 
    scanf("%d",&T);
    while(T--) {
        scanf("%d %d %d",&N,&M,&S);
        ok = true;
        for(i=1; i<=N; ++i)
            scanf("%d",&D[i]);
        if(D[S])
            ok = false;
        while(M--) {
            scanf("%d %d %d",&i,&j,&c);
            if(D[i] > D[j] + c)
                ok = false;
            if(D[j] > D[i] + c)
                ok = false;
        }
        printf("%s\n",ok == true ? "DA" : "NU");
    }
 
    return 0;
}