Pagini recente » Cod sursa (job #1760157) | Cod sursa (job #1410867) | Cod sursa (job #1635961) | Cod sursa (job #2058050) | Cod sursa (job #1559008)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("distante.in");
ofstream out("distante.out");
const int dmax = 50000;
int d[dmax + 1];
int N, M, S, T;
void verifica()
{
int i, x, y, cost;
bool answer = true;
in >> N >> M >> S;
for(i = 1; i <= N; i++) in >> d[i];
if(d[S] != 0) answer = false;
for(i = 1; i <= M; i++)
{
in >> x >> y >> cost;
if(d[x] + cost < d[y] || d[y] + cost < d[x]) answer = false;
}
if(answer == true) out << "DA" << '\n';
else
out << "NU" << '\n';
}
int main()
{
in >> T;
for(int i = 1; i <= T; i++) verifica();
return 0;
}