Cod sursa(job #1473431)

Utilizator akaprosAna Kapros akapros Data 19 august 2015 13:35:16
Problema Distante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#define inf 1000000000
#define maxN 50002
using namespace std;
int n, N, m, s, nr, t, i, j, d[maxN];
bool used[maxN];

void read()
{
    int a, b, c;
    freopen("distante.in", "r", stdin);
    freopen("distante.out", "w", stdout);
    scanf("%d", &t);
    while (t --)
    {
        scanf("%d %d %d", &n, &m, &s);
        for (i = 1; i <= n; ++ i)
        {
            scanf("%d", &d[i]);
            used[i] = 0;
        }
        nr = 1;
        used[s] = 1;
        for (i = 1; i <= m; ++ i)
        {
            scanf("%d %d %d", &a, &b, &c);
            if (!used[b] && d[a] + c == d[b])
                used[b] = 1,
                          ++ nr;
            if (d[a] + c < d[b])
                d[s] = inf;
        }
        if (d[s] != 0 || nr != n)
            printf("NU\n");
        else
            printf("DA\n");
    }
}
int main()
{
    read();
    return 0;
}