Cod sursa(job #1422938)

Utilizator Liviu98Dinca Liviu Liviu98 Data 20 aprilie 2015 13:34:10
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <iostream>
#include <fstream>
#define NMax 50005
using namespace std;
int N,M,S,T,D[NMax],a,b,c;
ifstream g("distante.in");
ofstream f("distante.out");

int Solve()
{
        g>>N>>M>>S;
        for(int i=1;i<=N;i++)
            g>>D[i];
        int ok=1;
        for(int i=1;i<=M;i++)
        {
            g>>a>>b>>c;
            if(D[a]+c<D[b] || D[b]+c<D[a])
            ok=0;
        }
        return ok && D[S]==0;
}

int main()
{
    g>>T;
    while(T--)
    {
        if(Solve())
            f<<"DA\n";
        else
            f<<"NU\n";
    }
}