Cod sursa(job #2923378)

Utilizator andreibrosPeta Andrei Mathias andreibros Data 12 septembrie 2022 23:30:36
Problema Distante Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("distante.in");
ofstream out("distante.out");

const int NMAX = 50000;
int dist[NMAX + 1];
int n,m,s;
void verificare()
{
    int x,y,cost;
    bool ok=1;
    in>>n>>m>>s;
    for(int i=1; i<=n; i++)
        in>>dist[i];
    if (dist[s]!=0)
        ok=0;


    for(int i=1; i<=m; i++)
    {
        in>>x>>y>>cost;
        if(dist[x]+cost<dist[y] || dist[y]+cost<dist[x])
            ok=0;
    }

    if(ok==1)
        out<<"DA"<<"\n";
    else
        out<<"NU"<<"\n";


}
int main()
{
    int T;
    in>>T;
    for(int i=1; i<=T; i++)
    {
        verificare();
    }
    return 0;
}