Cod sursa(job #1701223)

Utilizator tudorgalatanRoman Tudor tudorgalatan Data 12 mai 2016 14:47:50
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <fstream>
#include <climits>
#define MAX1  50001
#define MAX2 100001

using namespace std;


unsigned short int T;
unsigned short int N, S;
unsigned int M;
unsigned int D[MAX1];

unsigned int path[MAX2];
unsigned int i, j, k;
bool okay;


struct muchie
{
    int a, b, c;
};

muchie v[MAX2];

int main()
{
    ifstream fin ("distante.in");
    ofstream fout ("distante.out");
    fin >> T;
    while (T)
    {
        okay = 1;
        fin >> N >> M >> S;
        for (i=1; i<=N; i++)
            fin >> D[i];
        for (i=1; i<=M; i++)
            fin >> v[i].a >> v[i].b >> v[i].c;
        if (D[S] != 0)
            okay = 0;
        for (i=1; i<=M; i++)
            if (D[v[i].a] + v[i].c < D[v[i].b])
                okay = 0;
        /*
        for (i=1; i<=M; i++)
            if (v[i].b != S)
            {
                for (j=1; j<=M; j++)
                    for (k=1; k<=M; k++)
                        if (D[v[j].a]+v[i].c != D[v[k].b])
                            okay = 0;
            }
        */
        if (okay)
            fout << "DA\n";
        else
            fout << "NU\n";
        T--;
    }
    fin.close();
    fout.close();
    return 0;
}