Pagini recente » Cod sursa (job #767537) | Cod sursa (job #1041540) | Cod sursa (job #2287294) | Cod sursa (job #1337337) | Cod sursa (job #1990971)
#include <cstdio>
const int MAXN = 5e4;
int dist[MAXN + 1];
int main() {
int t, n, m, s, x, y, c;
bool check;
FILE *fin = fopen("distante.in", "r");
fscanf(fin, "%d", &t);
FILE *fout = fopen("distante.out", "w");
for (; t > 0; --t) {
fscanf(fin, "%d%d%d", &n, &m, &s);
check = 0;
for (int i = 1; i <= n; ++i) {
fscanf(fin, "%d", &dist[i]);
}
for (int i = 0; i < m; ++i) {
fscanf(fin, "%d%d%d", &x, &y, &c);
if ((dist[x] + c < dist[y]) || (dist[y] + c < dist[x])) {
check = 1;
}
}
if (dist[s]) {
check = 1;
}
if (!check) {
fprintf(fout, "DA\n");
} else {
fprintf(fout, "NU\n");
}
}
fclose(fin);
fclose(fout);
return 0;
}