Cod sursa(job #2529672)

Utilizator i.uniodCaramida Iustina-Andreea i.uniod Data 23 ianuarie 2020 19:45:52
Problema Distante Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
using namespace std;
ifstream fin("distante.in");
ofstream fout("distante.out");

int N, T, M, S;
int dist[50000 + 5];

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

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

    int a, b, c;
    bool isOk = true;

    for(int i = 1; i<= M; ++ i) {
        fin >> a >> b >> c;

        if(dist[a] + c < dist[b] || dist[b] + c < dist[a])
            isOk = false;
    }

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

int main()
{
    fin >> T;
    for(int i = 1; i <= T; ++ i)
        Solve();
    return 0;
}