Cod sursa(job #1564215)

Utilizator gedicaAlpaca Gedit gedica Data 9 ianuarie 2016 12:41:47
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>
#include <cstring>

using namespace std;

const int Max= 1000000000;

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


int n,i,y,t,x,s,j,m,c;

int d[50010];

bool ok[50010];


bool verif()
{
    bool ok=1;
    for(i=1;i<=n;i++)
    {
        if(::ok[i]==0)
            ok=0;
        ::ok[i]=0;
    }
    return ok;
}

int main()
{

    fin>>t;
    for(j=1; j<=t; j++)
    {


        fin>>n>>m>>s;

        for(i=1; i<=n; i++)
            fin>>d[i];

        if(d[s]==0)
            ok[s]=true;

        for(i=1; i<=m; i++)
        {
            fin>>x>>y>>c;
            if(d[x]+c==d[y])
                ok[y]=true;
            if(d[y]+c==d[x])
                ok[x]=true;
        }

        if( verif())
            fout<<"DA"<<'\n';
        else
            fout<<"NU"<<'\n';
    }

    return 0;
}