Cod sursa(job #921527)

Utilizator brainwashed20Alexandru Gherghe brainwashed20 Data 21 martie 2013 02:13:23
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;
}