Pagini recente » Cod sursa (job #2085446) | Cod sursa (job #1553885) | Cod sursa (job #1970191) | Cod sursa (job #1673043) | Cod sursa (job #1044764)
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <climits>
#define INFINIT INT_MAX
#define mp make_pair
using namespace std;
ifstream fin("distante.in");
ofstream fout("distante.out");
struct element{
int vf;
int d;
};
int caz,n,m,nod,d[50005];
vector<element> V[50005];
int main()
{
fin>>caz;//numar cazuri
for(;caz;caz--){
//CITIRE
fin>>n>>m>>nod;
for(int i=1;i<=n;i++){
fin>>d[i];
}
int a;element b,c;
for(;m;m--){
fin>>a>>b.vf>>b.d;
V[a].push_back(b);
c.vf=a;c.d=b.d;
V[b.vf].push_back(c);
}
//VERIFICARE
bool OK=true;
for(int i=1;i<=n;i++){
for(int j=0;j<V[i].size();j++){
int k=V[i][j].vf,dist=V[i][j].d;
if(d[k]>d[i]+dist)
OK=false;
}
}
if(OK==true)
fout<<"DA\n";
else
fout<<"NU\n";
}
return 0;
}