Cod sursa(job #1518686)

Utilizator PetrutiuPaulPetrutiu Paul Gabriel PetrutiuPaul Data 6 noiembrie 2015 08:45:47
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include<fstream>

#define inf 1<<30
#define maxn 50001

using namespace std;

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


int n, m, t, s, a, b, c;
int d[maxn];

int main()
{
    fin>>t;
    for(int i=1; i<=t; i++)
    {
        fin>>n>>m>>s;

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

        bool ok=true;

        for(int i=1; i<=m; i++)
        {  fin>>a>>b>>c;

        if(d[a]+c<d[b] or d[b]+c<d[a])
            ok=false;

        if(d[s]) ok=false;
        }

        if(ok) fout<<"DA"<<"\n";
            else fout<<"NU"<<"\n";
    }
    return 0;
}