Cod sursa(job #1415751)

Utilizator ovidiuz98Zamfir Ovidiu ovidiuz98 Data 6 aprilie 2015 01:08:48
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#define DIM 50005

using namespace std;

ifstream fin("distante.in");
ofstream fout("distante.out");

int T,N,M,dist[DIM],S;
int solve(){
    fin>>N>>M>>S;
    for(int i=1;i<=N;i++)
        fin>>dist[i];
    int ok=1;
    while(M--){
        int a,b,c;
        fin>>a>>b>>c;
        if(dist[a]+c<dist[b] || dist[b]+c<dist[a])
            ok=0;
    }
    return ok && dist[S]==0;
}
int main(){
    fin>>T;
    while(T--){
        if(solve())
            fout<<"DA\n";
        else
            fout<<"NU\n";
    }
    fin.close();fout.close();
    return 0;
}