Cod sursa(job #1106026)

Utilizator Stefanescu_MihaiStefanescu Mihai-Nicolae Stefanescu_Mihai Data 12 februarie 2014 12:48:06
Problema Distante Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <cstdio>
#include <vector>

using namespace std;

#define MaxN 50050


int main()
{
    freopen( "distante.in", "r", stdin );
    freopen( "distante.out", "w", stdout );

    int n, m, s;

    short t, it;
    int x, y, c;

    int d[MaxN], i;

    bool ok;


    int dummy;
    scanf( "%d\n", &dummy );
    t = (short)dummy;

    for ( it = 1; it <= t; ++it )
    {
        scanf( "%d %d %d\n", &n, &m, &s );

        for ( i = 1; i <= n; ++i )
            scanf( "%d ", &d[i] );

        ok = 1;

        for ( i = 1; i <= m; ++i )
        {
            scanf( "%d %d %d\n", &x, &y, &c );

            if ( ( d[x] + c < d[y] ) || ( d[y] + c < d[x] ) )
            {
                ok = 0;
                break;
            }

        }

        if ( ok )
            printf( "DA\n" );
        else
            printf( "NU\n" );
    }

    fclose( stdin );
    fclose( stdout );

    return 0;
}