Pagini recente » Cod sursa (job #565080) | Cod sursa (job #1527389) | Cod sursa (job #2174934) | Cod sursa (job #2081535) | Cod sursa (job #2702184)
#include <fstream>
#include <vector>
using namespace std;
int main()
{
ifstream fin("distante.in");
ofstream fout("distante.out");
int tests;
fin >> tests;
while (tests-- > 0)
{
int nodes, edges, start;
fin >> nodes >> edges >> start;
vector <int> dist(nodes + 1, 0);
for (int i = 1;i <= nodes;++i)
fin >> dist[i];
bool good = true;
for (int i = 1;i <= edges;++i)
{
int x, y, z;
fin >> x >> y >> z;
if (dist[x] + z < dist[y] || dist[y] + z < dist[x])
good = false;
}
if (dist[start] != 0)
good = false;
fout << ((good == true) ? "DA\n" : "NU\n");
}
fin.close();
fout.close();
return 0;
}