Cod sursa(job #1044773)

Utilizator BartieSocaciu Vlad Bartie Data 30 noiembrie 2013 12:41:59
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("distante.in");
ofstream fout("distante.out");
int caz,n,m,nod,d[50005];
bool verif[50005];
int main()
{
    fin>>caz;
    for(;caz;caz--){
        bool OK=true;
        fin>>n>>m>>nod;
        for(int i=1;i<=n;i++){
            fin>>d[i];
            verif[i]=false;
        }
        int a,b,c;
        if(d[nod]==0)
            verif[nod]=true;
        for(;m;m--){
            fin>>a>>b>>c;
            if(d[a]==d[b]+c)
                verif[a]=true;
            if(d[b]==d[a]+c)
                verif[b]=true;
        }
        for(int i=1;i<n;i++)
            if(verif[i]==false)
                OK=false;
        if(OK==true)
            fout<<"DA\n";
        else
            fout<<"NU\n";
    }
    return 0;
}