Cod sursa(job #660026)

Utilizator a_h1926Heidelbacher Andrei a_h1926 Data 11 ianuarie 2012 16:53:23
Problema Distante Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>

#define NMax 50005

using namespace std;

int N, M, S, D[NMax];

void Solve ()
{
    scanf ("%d %d %d", &N, &M, &S);
    for (int i=1; i<=N; ++i)
    {
        scanf ("%d", &D[i]);
    }
    if (D[S]!=0)
    {
        printf ("NU\n");
        return;
    }
    for (; M>0; --M)
    {
        int X, Y, C;
        scanf ("%d %d %d", &X, &Y, &C);
        if (D[X]+C<D[Y])
        {
            printf ("NU\n");
            return;
        }
    }
    printf ("DA\n");
}

int main()
{
    freopen ("distante.in", "r", stdin);
    freopen ("distante.out", "w", stdout);
    int T;
    scanf ("%d", &T);
    for (; T>0; --T)
    {
        Solve ();
    }
    return 0;
}