Pagini recente » Cod sursa (job #1577049) | Cod sursa (job #2879818) | Cod sursa (job #2014901) | Cod sursa (job #1030164) | Cod sursa (job #1305013)
#include<stdio.h>
#include<iostream>
#include<fstream>
#include<vector>
#include<queue>
#include<limits.h>
using namespace std;
int v[50000];
int main()
{
ifstream si;
si.open("distante.in");
FILE* so=fopen("distante.out","w");
int t;
si>>t;
while(t--)
{
int n,m,s;
si>>n>>m>>s;
--s;
int x[n],i;
for(i=0;i<n;++i)
{
si>>x[i];
v[i]=INT_MAX;
}
int a,b,c;
v[s]=0;
for(i=0;i<m;++i)
{
si>>a>>b>>c;
--a;
--b;
if(v[a]>x[b]+c)
v[a]=x[b]+c;
if(v[b]>x[a]+c)
v[b]=x[a]+c;
}
for(i=0;i<n;++i)
if(x[i]!=v[i])
break;
if(i<n)
{
fprintf(so,"NU\n");
}
else
fprintf(so,"DA\n");
}
}