Cod sursa(job #1356522)

Utilizator killlerr1Chilom Mircea killlerr1 Data 23 februarie 2015 14:25:17
Problema Distante Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
using namespace std;

ifstream is("distante.in");
ofstream os("distante.out");

int n, m, s, t;
int dmin[50001];
int a, b, c;
bool ok;

int main()
{
    is >> t;
    string str;
    while(t)
    {
        ok = true;
        is >> n >> m >> s;
        for( int i = 1; i <= n; ++i )
            is >> dmin[i];
        if( dmin[s] != 0 )
        {
            str = "NU";
            os << str << '\n';
            continue;
        }
        for( int i = 1; i <= m; ++i )
        {
            is >> a >> b >> c;
            if( dmin[a] + c < dmin[b] || dmin[b] + c < dmin[a] )
                ok = false;
        }
        if( ok == false )
            str = "NU";
        else
            str = "DA";
        os << str << '\n';
        --t;
    }

    is.close();
    os.close();
}