Cod sursa(job #964705)

Utilizator crisbodnarCristian Bodnar crisbodnar Data 22 iunie 2013 09:46:18
Problema Distante Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 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;
                    break;
                }
            }
        fout << (ok ? "DA" : "NU") <<'\n';
    }
    return 0;
}