Cod sursa(job #2298856)

Utilizator Mihai145Oprea Mihai Adrian Mihai145 Data 8 decembrie 2018 16:10:51
Problema Distante Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>

using namespace std;

ifstream fin("distante.in");
ofstream fout("distante.out");

int N, M, S, dists[50005];

void Solve()
{
    fin >> N >> M >> S;

    for(int i = 1; i <= N; i++)
        fin >> dists[i];

    int x, y, c;
    bool isOk = true;
    for(int i = 1; i <= M; i++)
    {
        fin >> x >> y >> c;

        if(dists[x] + c < dists[y] || dists[y] + c < dists[x])
            isOk = false;
    }

    if(dists[S] != 0 || isOk == false)
        fout << "NU\n";
    else
        fout << "DA\n";
}

int main()
{
    int T;
    fin >> T;

    while(T--)
        Solve();

    return 0;
}