Cod sursa(job #1523851)

Utilizator rzvrzvNicolescu Razvan rzvrzv Data 13 noiembrie 2015 13:31:20
Problema Distante Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<cstdio>

using namespace std;

int d[500002],n,m,s,x,y,z,i,t,j;
bool ok;

int main()
{
    freopen("distante.in","r",stdin);
    freopen("distante.out","w",stdout);
    scanf("%d",&t);
    for(i=1;i<=t;i++)
    {
        scanf("%d%d%d",&n,&m,&s);
        for(j=1;j<=n;j++)
        {
            scanf("%d",&d[j]);
        }
        ok=true;
        for(j=1;j<=m;j++)
        {
            scanf("%d%d%d",&x,&y,&z);
            if(d[x]+z<d[y]||d[y]+z<d[x]||d[s]!=0)
            {
                printf("NU\n");
                ok=false;
                break;
            }
        }
        if(d[s]==0&&ok)
        {
            printf("DA\n");
        }
    }
    return 0;
}