Pagini recente » Cod sursa (job #215499) | Cod sursa (job #3144747) | Cod sursa (job #244618) | Cod sursa (job #2810379) | Cod sursa (job #494746)
Cod sursa(job #494746)
# include <cstdio>
const char *FIN = "distante.in", *FOU = "distante.out" ;
const int MAX = 60005 ;
bool X[MAX] ;
short V[MAX] ;
int T, N, M, S ;
int main ( void ) {
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
for ( scanf ( "%d", &T ) ; T ; --T ) {
int stop = 1;
scanf ( "%d %d %d", &N, &M, &S ) ;
for ( int i = 1; i <= N; ++i ) {
scanf ( "%hd", V + i ) ;
X[i] = 0 ;
}
for ( int i = 1, a, b, c; i <= M; ++i ) {
scanf ( "%d %d %d", &a, &b, &c ) ;
if ( V[a] + c == V[b] ) {
X[b] = 1 ;
} else if ( V[b] + c == V[a] ) {
X[a] = 1 ;
}
if ( V[a] + c < V[b] || V[b] + c < V[a] ) {
stop = 0 ;
}
}
for ( int i = 1; i <= N; ++i ) {
if ( i != S && X[i] == 0 ) {
stop = 0 ;
break ;
}
}
printf ( "%s\n", stop ? "DA" : "NU" ) ;
}
}