Cod sursa(job #1249432)
| Utilizator | Data | 26 octombrie 2014 23:16:57 | |
|---|---|---|---|
| Problema | Distante | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.7 kb |
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, t, d[50002], s, a, b, c, ok, i, j, m;
FILE *f=fopen("distante.in", "r");
FILE *g=fopen("distante.out", "w");
fscanf(f,"%d", &t);
for(i = 1; i <= t; ++i)
{
ok = 1;
fscanf(f,"%d%d%d", &n, &m, &s);
for(j = 1; j <= n; ++j)
fscanf(f,"%d", &d[j]);
if(d[s]!=0)
ok = 0;
for(j = 1; j <= m; ++j)
{
fscanf(f,"%d%d%d", &a, &b, &c);
if(d[a]>d[b]+c||d[b]>d[a]+c)
ok = 0;
}
if(ok==1)
fprintf(g,"DA\n");
else
fprintf(g,"NU\n");
}
return 0;
}