Pagini recente » Cod sursa (job #1570240) | Cod sursa (job #2131197) | Cod sursa (job #1886261) | Cod sursa (job #3255285) | Cod sursa (job #1765788)
#include <stdio.h>
using namespace std;
const int MAXN = 50005;
int d[MAXN + 1];
int main()
{
FILE *fin, *fout;
fin = fopen("distante.in", "r");
fout = fopen("distante.out", "w");
int t;
fscanf(fin, "%d", &t);
for(int k = 1; k <= t; k++)
{
int n, m, s;
bool ok = 1;
fscanf(fin, "%d%d%d", &n, &m, &s);
for(int i = 1; i <= n; i++)
{
fscanf(fin, "%d", &d[i]);
}
for(int i = 1; i <= m; i++)
{
int a, b, c;
fscanf(fin, "%d%d%d", &a, &b, &c);
if(d[a] + c < d[b] || d[b] + c < d[a])
ok = 0;
}
if(d[s] == 0 && ok == 1)
fprintf(fout, "DA\n");
else
fprintf(fout, "NU\n");
}
return 0;
}