Cod sursa(job #2486510)

Utilizator HumikoPostu Alexandru Humiko Data 2 noiembrie 2019 23:55:40
Problema Distante Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <algorithm>
#include <stack>
#include <queue>
#include <deque>
#include <vector>
#include <string>
#include <set>
#include <map>
#include <cstring>

using namespace std;

//#include <iostream>
#include <fstream>

//ifstream cin ("input.in");
//ofstream cout ("output.out");

ifstream cin ("distante.in");
ofstream cout ("distante.out");

static const int INF = 1e9;
static const int NMAX = 5e4+5;

int v[NMAX];

string solve(int n, int m, int s) {
	for ( int i = 1; i <= n; ++i ) {
		cin>>v[i];
	}

	if ( v[s] ) {
		return "NU";
	}

	for ( int i = 1; i <= m; ++i ) {
		int a, b, c;
		cin>>a>>b>>c;

		if ( v[a]+c < v[b] || v[b]+c < v[a] ) {
			return "NU";
		}
	}

	return "DA";
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);

	int t;
	cin>>t;

	while ( t-- ) {
		int n, m, s;

		cin>>n>>m>>s;
		cout<<solve(n, m, s)<<'\n';
	}
}