Cod sursa(job #775312)

Utilizator gicu_01porcescu gicu gicu_01 Data 7 august 2012 19:43:23
Problema Distante Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <stdio.h>

using namespace std;

int v[4][100010];
int a[50010];
int n,m,s,T;

int djikastra(int nod)
{
    int i,b;
    b=1;
    for (i=1; i<=m; i++)
     if (a[v[2][i]]>a[v[1][i]]+v[3][i])
     {
         a[v[2][i]]=a[v[1][i]]+v[3][i];
         b=0;
         break;
     }
    return b;
}

int main()
{
    int i,j;
    freopen("distante.in","r",stdin);
    freopen("distante.out","w",stdout);
    scanf("%i",&T);
    for (i=1; i<=T; i++)
    {
        scanf("%i%i%i",&n,&m,&s);
        for (j=1; j<=n; ++j) scanf("%i",&a[j]);
        for (j=1; j<=m; ++j) scanf("%i%i%i",&v[1][j],&v[2][j],&v[3][j]);
        if ( djikastra(s) ) printf("DA\n"); else printf("NU\n");
    }
    return 0;
}