Pagini recente » Cod sursa (job #29303) | Clasament asgarga | Cod sursa (job #1360082) | Cod sursa (job #374917) | Cod sursa (job #985013)
Cod sursa(job #985013)
#include <fstream>
#include <vector>
#define MAXN 50005
#define MAXM 100005
using namespace std;
ifstream f("distante.in");
ofstream g("distante.out");
int t,n,m,s,d[MAXN],a,b,c;
bool vf[MAXN],good;
int main()
{
int i;
f>>t;
while(t--){
f>>n>>m>>s;
for(i=1;i<=n;i++){
f>>d[i];
vf[i]=0;}
if(d[s]==0)
vf[s]=1;
good=1;
for(i=1;i<=m;i++){
f>>a>>b>>c;
if(d[a]+c<d[b]||d[b]+c<d[a])
good=0;
if(d[a]+c==d[b])
vf[b]=1;
if(d[b]+c==d[a])
vf[a]=1;}
for(i=1;i<=n&&good;i++)
good&=vf[i];
if(good)
g<<"DA\n";
else
g<<"NU\n";}
f.close();
g.close();
return 0;
}