Cod sursa(job #963214)

Utilizator andreimaresuMaresu Andrei andreimaresu Data 16 iunie 2013 20:23:46
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>

#define INF 1000

int main()
{
    int t,c,k;
    long int i,j,a,b,s,n,m,d[50001];
    bool ok=true;
    FILE *in=fopen("distante.in","r");
    FILE *out=fopen("distante.out","w");
    fscanf(in,"%d",&t);
    for(k=0;k<t;k++)
    {
        ok=true;
        fscanf(in,"%ld %ld %ld",&n,&m,&s);
        for(j=1;j<=n;j++)
        {
            fscanf(in,"%ld",&d[j]);
        }
        if(d[s]!=0) ok=false;
         for (i = 1; i <= m; ++i){
            fscanf(in,"%ld %ld %ld",&a,&b,&c);
            if (d[a] > d[b] + c || d[b] > d[a] + c) ok = false;
        }
        if(ok)
        {
            fprintf(out,"DA\n");
        }
        else
        {
            fprintf(out,"NU\n");
        }

    }
    fclose(in);
    fclose(out);
    return 0;
}