Cod sursa(job #1128565)

Utilizator andy1496Casu-Pop Andrei andy1496 Data 27 februarie 2014 17:39:51
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;

int main() {

	int t, n, m, i, x, y, k, s, c, d[50002];
	bool v;

	freopen("distante.in", "r", stdin);
	freopen("distante.out", "w", stdout);

	scanf("%d", &t);

	for (k = 1; k <= t; k++) {

		scanf("%d %d %d", &n, &m, &s);

		v = true;

		for (i = 1; i <= n; i++) scanf("%d", &d[i]);

		if (d[s] != 0) v = false;

		for (i = 1; i <= m; i++) {
			scanf("%d %d %d", &x, &y, &c);
			if ((d[x] + c < d[y]) || (d[y] + c < d[x])) {
				v = false;
			}
		}

		if (v == true) printf("DA\n");
		else printf("NU\n");

	}


	return 0;
}