Cod sursa(job #2669174)

Utilizator racleta31Andreican Rares racleta31 Data 6 noiembrie 2020 12:33:54
Problema Distante Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <bits/stdc++.h>
#define nmax 50000
#define buffmax 1<<17
FILE*input, *output;
char buffer[buffmax];
int poz=buffmax;
inline char advance()
{
    if(poz == buffmax)
    {
        fread(buffer, 1, buffmax, input);
        poz=0;
    }
    return buffer[poz++];
}
int nr()
{
    char a = advance();
    while(!isdigit(a))
    {
        a=advance();
    }
    int num=0;
    while(isdigit(a))
    {

        num = num * 10 + a-'0';
        a=advance();
    }
    return num;
}
int n,m, nod1, nod2, cost, sursa, teste;
int d[nmax+5];

using namespace std;
ofstream out("distante.out");
int main()
{
    input=fopen("distante.in", "r");
    teste=nr();
    for(; teste; teste--)
   {

    n=nr();
        m=nr();
        sursa=nr();
        for(int i=1; i<=n; i++)
        {
            d[i]=nr();
        }
        bool ok  = 0 ;

        for(int i=1; i<=m; i++)
        {
            nod1=nr();
            nod2=nr();
            cost=nr();
            if(d[nod2]+cost < d[nod1] or d[nod1]+cost < d[nod2] )
            {
                ok = 1;

            }
        }

        if(ok ==0)
        {
            out<<"DA\n";
        }
        else
        {
            out<<"NU\n";
        }
    }
    return 0;
}