Cod sursa(job #1010424)
| Utilizator | Data | 14 octombrie 2013 20:56:00 | |
|---|---|---|---|
| Problema | Distante | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <cstdio>
#define N 50002
using namespace std;
int a[N];
int main()
{
freopen("distante.in", "r", stdin);
freopen("distante.out", "w", stdout);
int n, m, s, t, i, x, y, c, ok;
scanf("%d", &t);
while(t--)
{
scanf("%d%d%d", &n, &m, &s);
for(i=1;i<=n;i++)
{
scanf("%d", &a[i]);
}
ok=1;
for(i=1;i<=m;i++)
{
scanf("%d%d%d", &x, &y, &c);
if(a[x]+c<a[y]||a[y]+c<a[x])
{
ok=0;
break;
}
}
if(a[s]) ok=0;
printf("%s\n", ok?"DA":"NU");
}
}
