Cod sursa(job #3201220)

Utilizator DomnulMilandruMilandru Nicon-David DomnulMilandru Data 7 februarie 2024 10:27:19
Problema Distante Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb

#include <fstream>
#include <vector>
using namespace std;
ifstream cin("distante.in");
ofstream cout("distante.out");
int t;
int n,m,s;
int x,y,c;
vector<int> D;
vector<bool> fr;
int main()
{
    cin>>t;
    for(int i=0;i<t;i++)
    {
        cin>>n>>m>>s;
        D.resize(0);
        D.resize(n+1);
        for(int i=1;i<=n;i++)
           cin>>D[i];
        if(!D[s])
        {
            bool ok=1;
            fr.resize(0);
            fr.resize(n+1);
            for(int j=0;j<m;j++)
            {
                cin>>x>>y>>c;
                if(D[x]+c<D[y])
                       ok=0;
                if(D[x]+c==D[y])
                      fr[y]=1;
            }
            for(int i=1;i<=n;i++)
                  if(!fr[i] && i!=s)
                     {
                         ok=0;
                         break;
                     }
            if(ok==1)
               cout<<"DA";
            else
              cout<<"NU";
        }
        else
          cout<<"NU";
        cout<<'\n';
    }

    return 0;
}