Cod sursa(job #2900359)

Utilizator andreibossdebossSapunaru Andrei andreibossdeboss Data 10 mai 2022 19:26:46
Problema Distante Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <vector>

using namespace std;
  
FILE *in,*out;
int N,M,S,T,X,Y,Z;
vector<int> v(N + 1 , 0);
bool flag;
int main()
{
    in = fopen("distante.in","r");
    out = fopen("distante.out","w");
 
    fscanf(in,"%d",&T);
    for(int t=1;t<=T;t++)
    {
        fscanf(in,"%d%d%d",&N,&M,&S);
        flag=true;

        // distantele minime calculate de bronzarel
        for(int i=1;i<=N;i++)
            fscanf(in,"%d",&v[i]);
        
        // iau fiecare muchie din fisier si incerc sa vad daca pot obtine un drum mai scurt,adica x,y sunt capetele muchie,iar c costul si verific daca d+c<d[y]||d[y]+c<d
        for(int i=1;i<=M;i++)
        {
            fscanf(in,"%d%d%d",&X,&Y,&Z);
            if((v[X] + Z < v[Y]) || (v[Y] + Z < v[X]))
                // bronzarel nu a calculat bine distanta
                flag = false;
        }
  
        if(flag)
            fprintf(out,"DA\n");
        else
            fprintf(out,"NU\n");
    }
    return 0;
}