Pagini recente » Diferente pentru preoji/clasament/9 intre reviziile 31 si 30 | Rating Mircea Bianca (bianca.mircea) | Profil kristy2895 | Istoria paginii utilizator/vlad_vld_04 | Cod sursa (job #1298839)
#include <cstdio>
#define nmax 50005
using namespace std;
int dist[nmax];
int i, m, n, x, y, cost, okay, tests, source;
int main()
{
freopen("distante.in", "rt", stdin);
freopen("distante.out", "wt", stdout);
scanf("%d", &tests);
for(int qq=1; qq<=tests; ++qq)
{
okay=1;
scanf("%d%d%d", &n, &m, &source);
for(i=1; i<=n; ++i) scanf("%d", &dist[i]);
for(i=1; i<=m; ++i)
{
scanf("%d%d%d", &x, &y, &cost);
if(dist[y]>dist[x]+cost) okay=0;
}
if (dist[source]) okay=0;
if(okay) printf("DA\n");
else printf("NU\n");
}
return 0;
}