Cod sursa(job #3223232)

Utilizator Victor2006Nicola Victor-Teodor Victor2006 Data 12 aprilie 2024 19:12:38
Problema Distante Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>
#include <vector>
#define N 50000
#define INF (1LL << 62)

int dis[1 + N];
int n, m;

int main() {
    FILE *fin, *fout;
    int t, s, x, y, c;

    fin = fopen("distante.in", "r");
    fout = fopen("distante.out", "w");
    fscanf(fin, "%d", &t);
    while (t --) {
        fscanf(fin, "%d%d%d", &n, &m, &s);
        for ( int i = 1; i <= n; i ++ )
            fscanf(fin, "%d", &dis[i]);
        
        bool ok = true;
        for ( int i = 1; i <= m; i ++ ) {
            fscanf(fin, "%d%d%d", &x, &y, &c);
            if ( dis[x] + c < dis[y] ) {
                ok = false;
                break;
            }
        }

        if ( ok )
            fprintf(fout, "DA\n");
        else
            fprintf(fout, "NU\n");
    }
    fclose(fin);
    fclose(fout);
    return 0;
}