Cod sursa(job #2298851)

Utilizator Mihai145Oprea Mihai Adrian Mihai145 Data 8 decembrie 2018 16:08:21
Problema Distante Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 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;
    for(int i = 1; i <= M; i++)
    {
        fin >> x >> y >> c;

        if(dists[x] + c < dists[y] || dists[y] + c < dists[x])
        {
            fout << "NU\n";
            return ;
        }
    }

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

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

    while(T--)
        Solve();

    return 0;
}