Pagini recente » Cod sursa (job #2275556) | Cod sursa (job #2639841) | Cod sursa (job #1748865) | Cod sursa (job #425186) | Cod sursa (job #2227609)
#include <fstream>
using namespace std;
ifstream cin ("distante.in");
ofstream cout ("distante.out");
const int NMAX = 5e4;
int t, n, m, s;
bool ok;
int dp[1 + NMAX];
int main() {
cin >> t;
for(; t; t--) {
cin >> n >> m >> s;
// merge si Dijkstra dar e mai rapid asa
ok = 1;
for(int i = 1; i <= n; i++)
cin >> dp[i];
if(dp[s])
ok = 0;
for(int i = 1; i <= m; i++) {
int x, y, cost;
cin >> x >> y >> cost;
if(dp[x] + cost < dp[y] || dp[y] + cost < dp[x])
ok = 0;
}
if(ok)
cout << "DA\n";
else
cout << "NU\n";
}
return 0;
}