Cod sursa(job #1021794)

Utilizator mvcl3Marian Iacob mvcl3 Data 4 noiembrie 2013 11:36:22
Problema Distante Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <queue>
#define in "distante.in"
#define out"distante.out"
#define Max_Size 500009

std :: ifstream f(in);
std :: ofstream g(out);

int T, N, M, S;
int D[Max_Size];

int main()
{
    int a, b, c;

    f >> T;
    while(T --)
    {
        bool ok = 1;

        f >> N >> M >> S;
        for(int i = 1; i <= N; ++i) f >> D[i];

        for(int i = 1; i <= M && ok; ++i)
        {
            f >> a >> b >> c;
            if(D[a] + c < D[b] || D[b] + c < D[a])
                ok = 0;
        }

        if(D[S] || !ok) g << "NU\n";
        else            g << "DA\n";
    }

    g.close();
    return 0;
}