Cod sursa(job #2702184)

Utilizator trifangrobertRobert Trifan trifangrobert Data 3 februarie 2021 10:15:56
Problema Distante Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <vector>

using namespace std;

int main()
{
    ifstream fin("distante.in");
    ofstream fout("distante.out");
    int tests;
    fin >> tests;
    while (tests-- > 0)
    {
        int nodes, edges, start;
        fin >> nodes >> edges >> start;
        vector <int> dist(nodes + 1, 0);
        for (int i = 1;i <= nodes;++i)
            fin >> dist[i];
        bool good = true;
        for (int i = 1;i <= edges;++i)
        {
            int x, y, z;
            fin >> x >> y >> z;
            if (dist[x] + z < dist[y] || dist[y] + z < dist[x])
                good = false;
        }
        if (dist[start] != 0)
            good = false;
        fout << ((good == true) ? "DA\n" : "NU\n");
    }
    fin.close();
    fout.close();
    return 0;
}