Pagini recente » Cod sursa (job #2670257) | Cod sursa (job #1948577) | Cod sursa (job #1887567) | Cod sursa (job #2371168) | Cod sursa (job #3227720)
#include <fstream>
constexpr size_t max_nodes = 50000;
bool read_and_check_graph(std::istream& in) {
int distances[max_nodes + 1];
int nodes;
int edges;
int source;
in >> nodes >> edges >> source;
for (size_t node = 1; node <= nodes; node++)
in >> distances[node];
for (size_t edge = 1; edge <= edges; edge++) {
int node1;
int node2;
int cost;
in >> node1 >> node2 >> cost;
if (distances[node1] > distances[node2] + cost)
return false;
if (distances[node2] > distances[node1] + cost)
return false;
}
return true;
}
int main() {
std::ifstream in { "distante.in" };
std::ofstream out { "distante.out" };
int graph_count;
in >> graph_count;
for (int graph = 0; graph < graph_count; graph++) {
if (read_and_check_graph(in)) {
out << "DA\n";
} else {
out << "NU\n";
}
}
}