Cod sursa(job #1479572)

Utilizator tudormaximTudor Maxim tudormaxim Data 31 august 2015 16:54:24
Problema Distante Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
const int nmax = 50005;

bool verif_distance()
{
    int n, m, s, d[nmax], i, x, y, c;
    scanf("%d %d %d", &n, &m, &s);
        for(i=1; i<=n; i++)
            scanf("%d ", &d[i]);
    if(d[s]!=0) return false;
    for(i=1; i<=m; i++)
    {
        scanf("%d %d %d", &x, &y, &c);
        if(d[x]+c < d[y]) return false;
        if(d[y]+c < d[x]) return false;
    }
    return true;
}

int main()
{
    freopen("distante.in", "r", stdin);
    freopen("distante.out", "w", stdout);
    int t;
    scanf("%d ", &t);
    while(t--)
    {
        if(verif_distance()==true) printf("DA\n");
        else printf("NU\n");
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}