Cod sursa(job #1037647)

Utilizator alexpascadiAlexandru Pascadi alexpascadi Data 20 noiembrie 2013 15:56:45
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>

using namespace std;

const int N=50001;
const int M=100001;
int d[N],n,m,t,s;

int main()
{
    FILE *in,*out;
    in=fopen("distante.in","r");
    out=fopen("distante.out","w");
    int i,j,x,y,poz,cost;
    bool corect;
    fscanf(in,"%d",&t);
    for(j=1;j<=t;j++)
    {
        fscanf(in,"%d%d%d",&n,&m,&s);
        corect=1;
        for(i=1;i<=n;i++) fscanf(in,"%d",&d[i]);
        for(i=1;i<=m;i++)
        {
            fscanf(in,"%d%d%d",&x,&y,&cost);
            if(d[y] + cost < d[x])
                corect=0;
            if(d[x] + cost < d[y])
                corect=0;
        }
        if(d[s]!=0) corect=0;
        if(corect) fprintf(out,"DA\n");
        else fprintf(out,"NU\n");
    }
    return 0;
}