Cod sursa(job #1249432)

Utilizator sirbu11Sirbu Claudiu Cosmin sirbu11 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;
}