Cod sursa(job #1410473)

Utilizator theprdvtheprdv theprdv Data 31 martie 2015 05:56:26
Problema Distante Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <queue>
#include <functional>
#include <fstream>
#include <vector>

using namespace std;

fstream fin("distante.in", ios::in);
fstream fout("distante.out", ios::out);

#define MAXN 50005
int dist[MAXN];

int main() 
{
	int T;
	fin >> T;

	for (; T > 0; T--){
		int n, s, x, y, c, m;
		bool less = false;

		fin >> n >> m >> s;
		for (int i = 1; i <= n; i++) fin >> dist[i];

		for (int i = 1; i <= m; i++){
			fin >> x >> y >> c;
			if ((dist[y] > dist[x] + c) || (dist[x] > dist[y] + c)){
				less = true;
				break;
			}
		}
		!less && !dist[s] ? fout << "DA\n" : fout << "NU\n";
	}

	fin.close();
	fout.close();
	return 0;
}