Pagini recente » Cod sursa (job #535716) | Istoria paginii runda/722630277830559 | Cod sursa (job #736369) | Cod sursa (job #1367788) | Cod sursa (job #1426922)
#include <stdio.h>
#include <vector>
#define NMAX 50001
using namespace std;
int n, m, t, start, allGood, ans;
int intrare[NMAX];
vector< pair<int, int> > graf[NMAX];
void solve() {
for(int i = 1; i <= n; ++i) {
for(int j = 0; j < graf[i].size(); ++j){
if(graf[i][j].second + intrare[i] == intrare[graf[i][j].first]) {
++ans;
}
}
}
}
int main() {
freopen("distante.in", "r", stdin);
freopen("distante.out", "w", stdout);
int x, y, c;
scanf("%d", &t);
while(t--) {
for(int i = 1; i <= n; ++i) {
graf[i].clear();
}
scanf("%d%d%d", &n, &m, &start);
for(int i = 1; i <= n; ++i) {
scanf("%d", &intrare[i]);
}
for(int i = 0; i < m; ++i) {
scanf("%d%d%d", &x, &y, &c);
graf[x].push_back(make_pair(y, c));
graf[y].push_back(make_pair(x, c));
}
ans = 0;
solve();
printf("%s\n", ans == n ? "DA" : "NU");
}
return 0;
}