Cod sursa(job #146248)
| Utilizator | Data | 1 martie 2008 14:38:43 | |
|---|---|---|---|
| Problema | Distante | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <stdio.h>
#include <string.h>
int n, m, s, t, viz[50005], d[50005];
int main()
{
freopen("distante.in","r",stdin);
freopen("distante.out","w",stdout);
scanf("%d",&t);
int i, ok, x, y, c;
while (t--)
{
ok = 1;
scanf("%d %d %d",&n,&m,&s);
for (i = 1; i <= n; i++) scanf("%d",&d[i]);
if (d[s]) ok = 0;
else
for (i = 1; i <= m; i++)
{
scanf("%d %d %d",&x,&y,&c);
if (d[x] + c < d[y]) { ok = 0; break;}
}
if (ok) printf("DA\n");
else printf("NU\n");
}
return 0;
}
