Cod sursa(job #798221)

Utilizator alexalbu95Albu Alexandru alexalbu95 Data 15 octombrie 2012 22:27:03
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>

using namespace std;

const int inf=16000000;
const int maxn=50001;

ifstream f("distante.in");
ofstream g("distante.out");

int t, a, b, c, n, m, s, i, d[maxn];
bool block[maxn];

int main()
{
    int t;
    f>>t;
    for(; t; --t)
    {
        f>>n>>m>>s;
        for(i=1; i<=n; ++i)
        {
            f>>d[i];
            block[i]=0;
        }

        block[s]=1;
        for(; m; --m)
        {
            f>>a>>b>>c;
            if(d[a] + c == d[b]) block[b] = 1;
            if(d[b] + c == d[a]) block[a] = 1;
        }

        bool ok=0;
        for(i=1; i<=n && !ok; ++i)
            if(!block[i])
            {
                ok=1;
                g<<"NU\n";
            }

        if(!ok) g<<"DA\n";
    }
}