Cod sursa(job #1429338)

Utilizator LegionHagiu Stefan Legion Data 6 mai 2015 08:51:05
Problema Drumuri minime Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>
#define NMax 50000
using namespace std;

ifstream f("distante.in");
ofstream g("distante.out");

int d[NMax];

int main() {

	int t; f >> t;
	for (int q = 1;q <= t;q++) {
		bool ok = true;
		int n, m, s; f >> n >> m >> s;
		for (int i = 1;i <= n;i++)
			f >> d[i];

		if (d[s] != 0)
			ok = false;
		for (int i = 1;i <= m;i++) {
			int x, y, c; f >> x >> y >> c;
			if (d[x] + c < d[y] || d[y] + c < d[x])
				ok = false;
		}

		if (ok) g << "DA\n"; else g << "NU\n";
	}

	f.close(); g.close();
	return 0;
}