Cod sursa(job #781649)

Utilizator tzipleatudTudor Tiplea tzipleatud Data 24 august 2012 19:47:10
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
#define NM 50010

using namespace std;

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

int N,M,S,i,j,a,b,c;
int D[NM];
string ANS[2]= {"NU","DA"};

int T;

bool Solve ()
{
    f >> N >> M >> S;
    for (i=1; i<=N; i++)
        f >> D[i];

    bool ok=D[S]==0;
    for (i=1; i<=M; i++)
    {
        f >> a >> b >> c;
        if (D[a]+c<D[b]) ok=0;
        if (D[b]+c<D[a]) ok=0;
    }
    return ok;
}

int main ()
{
    for (f >> T; T; --T)
    {
        g << ANS[Solve()] << '\n';
    }

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