Cod sursa(job #2832989)

Utilizator icnsrNicula Ionut icnsr Data 14 ianuarie 2022 16:13:16
Problema Distante Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.36 kb
#include <iostream>
#include <vector>
 
/* clang-format off */
static __attribute__((unused)) void redir(const std::string str) { std::freopen((str + ".in").c_str(), "r", stdin); std::freopen((str + ".out").c_str(), "w", stdout); }
static void fast_io() { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); }
template<typename T> static void read(T& var) { std::cin >> var; }
template<typename T, typename... Ts> static void read(T& var, Ts&... vars) { read(var); read(vars...); }
/* clang-format on */
 
static std::vector<std::vector<std::pair<int, int>>> adj;
static std::vector<int> dists;
 
void solve_one()
{
        int N, M, S;
        read(N, M, S);
 
        dists.resize(N + 1);
        for(int i = 1; i <= N; ++i)
        {
                read(dists[i]);
        }
 
        adj.resize(N + 1);
        for(int i = 0; i < M; ++i)
        {
                int u, v, w;
                read(u, v, w);
 
                adj[u].push_back({v, w});
                adj[v].push_back({u, w});
        }
 
        if(dists[S] != 0)
        {
                std::cout << "NU\n";
                return;
        }
        else
        {
                std::cout << "DA\n";
        }
}
 
int main()
{
        fast_io();
        redir("distante");
 
        int T;
        read(T);
 
        while(T--)
        {
                solve_one();
        }
}