Cod sursa(job #1222898)

Utilizator cojocarugabiReality cojocarugabi Data 24 august 2014 18:13:07
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
# include <cstdio>
# include <cstring>
using namespace std;
const int nmax=50005;
int D[nmax];
int read()
{
    char c[30];
    scanf("%s",c);
    int k=strlen(c),p=0;
    for (int i=0;i<k;++i) p=p*10+c[i]-'0';
    return (p);
}
int main(void)
{
    freopen("distante.in","r",stdin);
    freopen("distante.out","w",stdout);
    int t=read(),n,m,u,x,y,z;
    while (t--)
    {
        bool ok=1;
        n=read();m=read();u=read();
        for (int i=1;i<=n;++i) D[i]=read();
        if (D[u]) ok=0;
        while (m--)
        {
            x=read();y=read();z=read();
            if (z+D[x]<D[y] || z+D[y]<D[x]) ok=0;
        }
        if (ok) printf("DA\n");else printf("NU\n");
    }
    return 0;
}