Cod sursa(job #1497313)
Utilizator | Data | 6 octombrie 2015 17:30:38 | |
---|---|---|---|
Problema | Distante | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <bits/stdc++.h>
using namespace std;
#define MAXN 50005
int main()
{
int n, t, m, s, a, b, c, D[MAXN];
freopen("distante.in","r",stdin);
freopen("distante.out","w",stdout);
scanf("%d",&t);
while(t--){
bool ok=true;
scanf("%d%d%d",&n,&m,&s);
for(int i=1; i<=n; ++i)
scanf("%d",&D[i]);
if(D[s])
ok=false;
while(m--){
scanf("%d%d%d",&a,&b,&c);
if(D[a]+c<D[b] || D[b]+c<D[a])
ok=false;
}
if(ok) printf("DA\n")
else printf("NU\n");
}
return 0;
}