Cod sursa(job #1500771)

Utilizator bpalaniciPalanici Bogdan bpalanici Data 12 octombrie 2015 17:56:54
Problema Distante Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

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

const int N = 50005;
const int M = 100005;

int n, m, start, T;
int dist[N];
bool ok;

int main()
{

    fin >> T;
    for (int i5 = 1; i5 <= T; i5++)
    {
        //memset(dist, 0 , sizeof dist);
        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, a, b, c; i <= m; i++)
        {
            fin >> a >> b >> c;
            if (dist[a] + c < dist[b] || dist[b] + c < dist[a]) ok = false;
        }
        if (ok) fout << "DA";
        else fout << "NU";
        fout << "\n";
    }
    return 0;
}