Cod sursa(job #2536616)

Utilizator borscalinCalin-Stefan Georgescu borscalin Data 2 februarie 2020 12:47:23
Problema Distante Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <iostream>
#include <fstream>

std::ifstream fin ( "distante.in" );
std::ofstream fout ( "distante.out" );

const int NMAX = 50000;

int dist[1 + NMAX];

int main() {
	int T;

	fin >> T;

	for ( ; T > 0; --T ) {
		int N, M, S;
		fin >> N >> M >> S;
		for ( int i = 1; i <= N; ++i )
			fin >> dist[i];

		bool ans = true;	
		for ( int i = 1; i <= M; ++i ) {
			int x, y, cost;
			fin >> x >> y >> cost;
			if ( dist[x] + cost < dist[y] )
				ans = false;
		}

		if ( dist[S] != 0 )
			ans = false;

		if ( ans == true )
			fout << "DA\n";
		else
			fout << "NU\n";
	}

	return 0;
}