Cod sursa(job #1267010)

Utilizator catalincraciunCraciun Catalin catalincraciun Data 19 noiembrie 2014 13:42:44
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
/// Craciun Catalin
///  Distante
#include <fstream>
#define NMax 50000
using namespace std;

ifstream f("distante.in");
ofstream g("distante.out");

int d[NMax];

int main() {

    int t; f>>t;
    for(int q=1;q<=t;q++) {
        bool ok = true;
        int n,m,s; f>>n>>m>>s;
        for (int i=1;i<=n;i++)
            f>>d[i];

        if (d[s] != 0)
            ok = false;
        for (int i=1;i<=m;i++) {
            int x,y,c; f>>x>>y>>c;
            if (d[x]+c < d[y] || d[y]+c < d[x])
                ok = false;
        }

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

    f.close(); g.close();
    return 0;
}