Cod sursa(job #2536012)

Utilizator stefanpiturStefan Alexandru Pitur stefanpitur Data 1 februarie 2020 13:42:09
Problema Distante Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;

const int N = 50001;
int d[N];

int main()
{
    FILE *fin, *fout;
    int n,m,i,x,y,c,t,start;
    bool valid;
    fin = fopen("distante.in","r");
    fout = fopen("distante.out","w");
    fscanf(fin,"%d",&t);
    while(t--){
        fscanf(fin,"%d %d %d",&n,&m,&start);
        for(i=1; i<=n; i++)
            fscanf(fin,"%d",&d[i]);
        if(d[start] != 0)
            valid = false;
        else
            valid = true;
        for(i=0; i<m; i++){
            fscanf(fin,"%d %d %d",&x,&y,&c);
            if(d[x] + c < d[y])
                valid = false;
        }
        if(valid)
            fprintf(fout,"DA\n");
        else
            fprintf(fout,"NU\n");
    }
    fclose(fin);
    fclose(fout);
    return 0;
}