Pagini recente » Cod sursa (job #2879152) | Cod sursa (job #2281270) | Cod sursa (job #2163875) | Cod sursa (job #2179900) | Cod sursa (job #3223234)
#include <stdio.h>
#include <vector>
#define N 50000
#define INF (1LL << 62)
int dis[1 + N];
int n, m;
int main() {
FILE *fin, *fout;
int t, s, x, y, c;
fin = fopen("distante.in", "r");
fout = fopen("distante.out", "w");
fscanf(fin, "%d", &t);
while (t --) {
fscanf(fin, "%d%d%d", &n, &m, &s);
for ( int i = 1; i <= n; i ++ )
fscanf(fin, "%d", &dis[i]);
bool ok = true;
for ( int i = 1; i <= m; i ++ ) {
fscanf(fin, "%d%d%d", &x, &y, &c);
if ( dis[x] + c < dis[y] ) {
ok = false;
break;
}
}
if ( ok && dis[s] == 0 )
fprintf(fout, "DA\n");
else
fprintf(fout, "NU\n");
}
fclose(fin);
fclose(fout);
return 0;
}