Cod sursa(job #993254)

Utilizator andrettiAndretti Naiden andretti Data 3 septembrie 2013 15:57:42
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>
#define maxn 50005
using namespace std;

int t,n,m,s;
int d[maxn];
int x,y,c,ok;

int main()
{
    freopen("distante.in","r",stdin);
    freopen("distante.out","w",stdout);

    scanf("%d",&t);
    for(int i=1;i<=t;i++)
    {
        scanf("%d%d%d",&n,&m,&s);
        for(int j=1;j<=n;j++) scanf("%d",&d[j]);

        ok=1;
        for(int j=1;j<=m;j++)
        {
            scanf("%d%d%d",&x,&y,&c);
            if(d[x]+c<d[y] || d[y]+c<d[x])
              ok=0;
        }
        if(d[s]) ok=0;

        if(ok) printf("DA\n");
        else printf("NU\n");
}

    fclose(stdin);
    fclose(stdout);
    return 0;
}