Cod sursa(job #977313)

Utilizator narcis_vsGemene Narcis - Gabriel narcis_vs Data 25 iulie 2013 16:13:08
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <vector>
#include <queue>
#include <cstring>

#define In "distante.in"
#define Out "distante.out"

#define Nmax 50002

using namespace std;

ifstream in(In);
ofstream out(Out);

inline bool Read()
{
    int X, Y, C, N, i, M, Source, D[Nmax];
    bool ret = 1;
    in>>N>>M>>Source;
    for(i = 1; i <= N; ++i)
        in>>D[i];
    if(D[Source]!=0)
        ret = 0;
    for(; M ; --M)
    {
        in>>X>>Y>>C;
        if(D[X]+C<D[Y] || D[Y] + C < D[X])
            ret = 0;
    }
    return ret;
}

int main()
{
    int T;
    for(in>>T; T ; --T)
        out<<(Read()?"DA\n":"NU\n");
    in.close();
    out.close();
    return 0;
}