Cod sursa(job #1464370)

Utilizator blackoddAxinie Razvan blackodd Data 23 iulie 2015 10:52:44
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <vector>

using namespace std;

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

int t;
int n, m, nod;
int x, y, z;
vector<int>d;

int main()
{
    fin >> t;

    while(t--)
    {
        bool ok = true;

        fin >> n >> m >> nod;

        d.resize(n + 1);

        for ( int i = 1; i <= n; ++i )
            fin >> d[i];

        if ( d[nod] > 0 )
            ok = false;

        for ( int i = 1; i <= m; ++i )
        {
            fin >> x >> y >> z;

            if ( d[x] > d[y] + z )
                ok = false;
            if ( d[y] > d[x] + z )
                ok = false;
        }

        if ( ok )
            fout << "DA\n";
        else
            fout << "NU\n";
    }

    fin.close();
    fout.close();
    return 0;
}