Cod sursa(job #1297944)
Utilizator | Duiu Octavian Octa | Data | 22 decembrie 2014 14:03:58 |
---|---|---|---|
Problema | Distante | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.68 kb |
#include<cstdio>
using namespace std;
int d[50003];
int main ()
{
freopen("distante.in","r",stdin); freopen("distante.out","w",stdout);
int t;
scanf("%d",&t);
while(t)
{
int n,m,start;
scanf("%d %d %d",&n,&m,&start);
for(int i=1;i<=n;++i)
scanf("%d ",&d[i]);
int x,y,c;
bool okay=true;
for(int i=1;i<=m;++i)
{
scanf("%d %d %d",&x,&y,&c);
if(d[x]+c<d[y] || d[y]+c<d[x]) okay=false;
}
if(d[start]) okay=false;
if(okay) printf("DA\n");
else printf("NU\n");
--t;
}
return 0;
}