Pagini recente » Rating Baci Raluca (ralucabaci03) | Cod sursa (job #2298724) | Cod sursa (job #31240) | Cod sursa (job #2883759) | Cod sursa (job #2220816)
#include <stdio.h>
#include <fstream>
#include <vector>
#include <queue>
#include <cstring>
using namespace std;
const int MAXN = 5e4 + 2;
int d[MAXN];
int best[MAXN];
int main() {
ifstream f("distante.in");
ofstream g("distante.out");
int t;
f >> t;
while(t--) {
int n, m, s;
f >> n >> m >> s;
for(int i = 1; i <= n; ++i) {
f >> d[i];
}
memset(best, 0x3f, sizeof best);
best[s] = 0;
for(int i = 1; i <= m; ++i) {
int a, b, c;
f >> a >> b >> c;
best[a] = min(best[a], d[b] + c);
best[b] = min(best[b], d[a] + c);
}
bool ok = true;
for(int i = 1; i <= n; ++i) {
ok &= (best[i] == d[i]);
}
if(ok && d[s] == 0) g << "DA\n";
else g << "NU\n";
}
return 0;
}