Cod sursa(job #1813497)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 22 noiembrie 2016 23:29:21
Problema Distante Scor 100
Compilator cpp Status done
Runda cerculdeinfo-lectia7-grafuri Marime 0.84 kb
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <vector>
#define  MaxN 50005
using namespace std;
  
FILE *IN,*OUT;
int N,M,S,T,v[MaxN],X,Y,Z;
bool Obt;
int main()
{
    IN=fopen("distante.in","r");
    OUT=fopen("distante.out","w");
 
    fscanf(IN,"%d",&T);
    for(int t=1;t<=T;t++)
    {
        fscanf(IN,"%d%d%d",&N,&M,&S);
        Obt=true;
        memset(v,0,sizeof v);
         
        for(int i=1;i<=N;i++)
            fscanf(IN,"%d",&v[i]);
         
        for(int i=1;i<=M;i++)
        {
            fscanf(IN,"%d%d%d",&X,&Y,&Z);
            if(v[X]+Z<v[Y]||v[Y]+Z<v[X])
                Obt=false;
        }
         
        if(v[S]!=0)
            Obt=false;
         
        if(Obt)
            fprintf(OUT,"DA\n");
        else
            fprintf(OUT,"NU\n");
    }
    return 0;
}