Cod sursa(job #2654754)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 2 octombrie 2020 10:59:13
Problema Distante Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("distante.in");
ofstream fout("distante.out");
int n,m,i,a,b,c,d[50003],f[50003],s,t,ok;

int main()
{
    fin>>t;
    for(;t--;)
    {
        fin>>n>>m>>s;
        for(i=1;i<=n;i++){fin>>d[i];f[i]=0;}ok=0;f[s]=1;
        for(i=1;i<=m;i++)
        {
            fin>>a>>b>>c;
            if(d[a]>d[b]) swap(a,b);
            if(d[b]==d[a]+c) f[b]=1;
            if(d[b]>d[a]+c) ok=1;
        }
        for(i=1;i<=n;i++) if(!f[i]) ok=1;
        if(ok==1) fout<<"NU\n";
        else fout<<"DA\n";
    }
    return 0;
}