Pagini recente » Cod sursa (job #2311664) | Cod sursa (job #1519673) | Cod sursa (job #2813239) | Cod sursa (job #1289140) | Cod sursa (job #2536616)
#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;
}