Cod sursa(job #2532162)

Utilizator mirceatlxhaha haha mirceatlx Data 27 ianuarie 2020 14:20:45
Problema Distante Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
#include <cstring>
#define INF (1 << 30)
#define NMAX 50005
using namespace std;

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

int dist[NMAX];

int T, N, M, S;

int main()
{
    int x, y, c;
    fin >> T;
    for(int t = 1; t <= T; t++){
        fin >> N >> M >> S;
        for(int i = 1; i <= N; i++){
            fin >> x;
            dist[i] = x;
        }
        bool ok = true;
        for(int i = 1; i <= M; i++){
            fin >> x >> y >> c;
            if(dist[x] + c < dist[y] || dist[y] + c < dist[x])
                ok = false;
        }

        if(!ok || dist[S] != 0){
            fout << "NU" << "\n";
        }
        else{
            fout << "DA" << "\n";
        }
    }
    return 0;
}