Pagini recente » Cod sursa (job #1724319) | Cod sursa (job #103985) | Cod sursa (job #321773) | Cod sursa (job #1925652) | Cod sursa (job #1452292)
#include<fstream>
#include<vector>
#include<cstring>
using namespace std;
int t, n, m, i, a, b, c, ok, s;
int d[50005], r[50005];
vector<pair<int, int> > v[50005];
ifstream fin("distante.in");
ofstream fout("distante.out");
int main(){
fin>> t;
for(; t; t--){
fin>> n >> m >> s;
for(i = 1; i <= n; i++){
fin>> d[i];
}
memset(r, 0, sizeof(r));
ok = 1;
for(i = 1; i <= m; i++){
fin>> a >> b >> c;
//v[a].push_back( make_pair(b, c));
if(d[a] + c < d[b] || d[b] + c < d[a]){
ok = 0;
}
if(d[b] == d[a] + c){
r[b] = 1;
}
if(d[b] + c == d[a]){
r[a] = 1;
}
}
r[s] = 1;
/*for(i = 1; i <= n; i++){
if(r[i] == 0){
ok = 0;
break;
}
}*/
if(ok == 1){
fout<<"DA\n";
}
else{
fout<<"NU\n";
}
}
return 0;
}