Pagini recente » Cod sursa (job #2187825) | Cod sursa (job #1629957) | Cod sursa (job #3225679) | Cod sursa (job #2070026) | Cod sursa (job #1322258)
#include <fstream>
#include <string.h>
using namespace std;
ifstream f("distante.in");
ofstream g("distante.out");
int d[50001], v[50001], i, j, k, n, m, s, t, ok;
int main()
{ f>>t;
for (; t; --t)
{ f>>n>>m>>s;
for (i=1; i<=n; ++i) f>>d[i];
if (d[s]!=0)
g<<"NU\n";
else
{ ok=1;
memset(v, 0, sizeof(v));
for (; m; --m)
{ f>>i>>j>>k;
if (d[i]+k<d[j])
{ ok=0;
break;
}
else
if (d[i]+k==d[j]) v[j]=1;
}
for (i=1; i<=n && ok; ++i)
if (!v[i] && i!=s) ok=0;
if (ok) g<<"DA\n";
else g<<"NU\n";
}
}
return 0;
}