Cod sursa(job #974295)

Utilizator Mihai22eMihai Ionut Enache Mihai22e Data 16 iulie 2013 19:03:52
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;

const int MAX_N = 50002;

int T, N, M, S;
int D[MAX_N];

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

    f >> T;
    while(T--) {
        f >> N >> M >> S;
        for(int i = 1; i <= N; ++i)
            f >> D[i];

        int OK = 1;
        for(int i = 1, x, y, c; i <= M; ++i) {
                f >> x >> y >> c;
                if(D[x] + c < D[y] || D[y] + c < D[x])
                    OK = 0;
        }
        if(D[S])
            OK = 0;

        if(OK)
            g << "DA\n";
        else g << "NU\n";
    }

    f.close();
    g.close();

    return 0;
}