Cod sursa(job #1297944)

Utilizator OctaDuiu Octavian Octa Data 22 decembrie 2014 14:03:58
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<cstdio>
using namespace std;
int d[50003];
int main ()
{
    freopen("distante.in","r",stdin); freopen("distante.out","w",stdout);

    int t;
    scanf("%d",&t);
    while(t)
    {
        int n,m,start;
        scanf("%d %d %d",&n,&m,&start);

        for(int i=1;i<=n;++i)
            scanf("%d ",&d[i]);

        int x,y,c;
        bool okay=true;
        for(int i=1;i<=m;++i)
            {
                scanf("%d %d %d",&x,&y,&c);
                if(d[x]+c<d[y] || d[y]+c<d[x]) okay=false;
            }
        if(d[start]) okay=false;

        if(okay) printf("DA\n");
         else    printf("NU\n");

        --t;

    }

   return 0;
}