Cod sursa(job #1804602)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 12 noiembrie 2016 19:49:43
Problema Distante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 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,"NU\n");
		else
			fprintf(OUT,"DA\n");
	}
	return 0;
}