Cod sursa(job #993169)

Utilizator andrettiAndretti Naiden andretti Data 3 septembrie 2013 14:01:02
Problema Distante Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#define maxn 50005
using namespace std;

int d[maxn];

int check()
{
    int n,m,s;
    int x,y,c;
    scanf("%d%d%d",&n,&m,&s);
    for(int i=1;i<=n;i++) scanf("%d",&d[i]);

    if(d[s]) return 0;
    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])
         return 0;
    }
    return 1;
}

void read()
{
    int t;
    scanf("%d",&t);
    for(int i=1;i<=t;i++)
     if(check()) printf("DA\n");
     else printf("NU\n");
}

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

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