Cod sursa(job #964706)

Utilizator crisbodnarCristian Bodnar crisbodnar Data 22 iunie 2013 09:47:02
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <iostream>
#include <fstream>
#include <vector>

#define N 50005

using namespace std;

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

int t, n, m ,s, d[N];

int main()
{
    fin>>t;
    while(t--)
    {
        fin>>n>>m>>s;
        bool ok = 1;
        for(int i=1; i<=n; i++) fin>>d[i];

        if(d[s] != 0) ok = 0;
        while(m--)
        {
                int x, y, c;
                fin>>x>>y>>c;
                if(d[x] > d[y] + c || d[y] > d[x] + c) ok = 0;
        }
        fout << (ok ? "DA" : "NU") <<'\n';
    }
    return 0;
}