Cod sursa(job #870689)

Utilizator dtoniucDaniel Toniuc dtoniuc Data 3 februarie 2013 20:14:10
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;

int t,n,m,k;
int cost[50010];
bool ok;

int main()
{
    ifstream fin("distante.in");
    ofstream fout("distante.out");
    fin>>t;

    int x,y,c;
    for(int i=1;i<=t;i++)
    {
        ok=1;
        fin>>n>>m>>k;
        memset(cost,0,50010);
        for(int i=1;i<=n;i++)
            fin>>cost[i];
        if(cost[k]!=0)
        {
            ok=0;
            for(int i=1;i<=m;i++)
                fin>>x>>y>>c;
        }
        else
            for(int i=1;i<=m;i++)
            {
                fin>>x>>y>>c;
                if(cost[x]>cost[y]+c)
                    ok=0;
            }
        if(ok) fout<<"DA\n";
        else fout<<"NU\n";
    }
    return 0;
}