Pagini recente » Cod sursa (job #20383) | Cod sursa (job #2415506) | Cod sursa (job #1079680) | Cod sursa (job #2183166) | Cod sursa (job #1322320)
#include <fstream>
using namespace std;
ifstream f("distante.in");
ofstream g("distante.out");
int d[50005], i, j, k, n, m, s, t, ok, v[50005];
int main()
{ f>>t;
for (; t; --t)
{ f>>n>>m>>s;
for (i=1; i<=n; ++i) f>>d[i];
ok=1;
if (d[s]!=0) ok=0;
v[s]=1;
for (; m; --m)
{ f>>i>>j>>k;
if (d[i]+k<d[j] || d[j]+k<d[i]) ok=0;
else
{ if (d[i]+k==d[j]) v[j]=1;
if (d[j]+k==d[i]) v[i]=1;
}
}
for (i=1; i<=n && ok; ++i)
if (!v[i]) ok=0;
if (ok) g<<"DA\n";
else g<<"NU\n";
}
return 0;
}