Cod sursa(job #2423872)
Utilizator | Livia Magureanu livlivi | Data | 22 mai 2019 01:41:33 |
---|---|---|---|
Problema | Distante | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <fstream>
using namespace std;
ifstream fin("distante.in");
ofstream fout("distante.out");
int N, M, S, dists[50005];
void Solve()
{
fin >> N >> M >> S;
for(int i = 1; i <= N; i++)
fin >> dists[i];
int x, y, c;
bool isOk = true;
for(int i = 1; i <= M; i++)
{
fin >> x >> y >> c;
if(dists[x] + c < dists[y] || dists[y] + c < dists[x])
isOk = false;
}
if(dists[S] != 0 || isOk == false)
fout << "NU\n";
else
fout << "DA\n";
}
int main()
{
int T;
fin >> T;
while(T--)
Solve();
return 0;
}