Cod sursa(job #1500782)

Utilizator bpalaniciPalanici Bogdan bpalanici Data 12 octombrie 2015 18:08:54
Problema Distante Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>

using namespace std;

ifstream fin("distante.in");
ofstream fout("distante.out");

const int N = 50005;

int main()
{
    int n = 0, m = 0, start = 0, T = 0, a, b, c;
    int dist[N];
    bool ok = 0;
    fin >> T;
    while (T--)
    {
        ok = true;
        fin >> n >> m >> start;
        for (int i = 1; i <= n; i++)
            fin >> dist[i];
        if (dist[start]) ok = false;
        for (int i = 1; i <= m; i++)
        {
            fin >> a >> b >> c;
            if (dist[a] + c < dist[b] || dist[b] + c < dist[a]) ok = false;
        }
        if (ok) fout << "DA\n";
        else fout << "NU\n";
    }
    return 0;
}