Cod sursa(job #1718593)

Utilizator LucianTLucian Trepteanu LucianT Data 18 iunie 2016 13:59:14
Problema Distante Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>
#define maxN 50005
using namespace std;
int T,n,m,i,j,x,y,z,s;
int d[maxN];
bool test()
{
    scanf("%d %d %d",&n,&m,&s);
    for(i=1;i<=n;i++)
        scanf("%d",&d[i]);
    for(i=1;i<=m;i++)
    {
        scanf("%d %d %d",&x,&y,&z);
        if(d[x]+z<d[y] || d[y]+z<d[x])
            return false;
    }
    if(d[s]) return false;
    return true;
}
int main()
{
    freopen("distante.in","r",stdin);
    freopen("distante.out","w",stdout);
    scanf("%d",&T);
    while(T--)
        if(test())
            printf("DA\n");
        else printf("NU\n");
    return 0;
}