#include #include #include #include #include #include using namespace std; int main() { ifstream infile("taxi.in"); ofstream outfile("taxi.out"); int n, m, count, days; infile >> n >> m; vector prestige(n); vector> roads(m); vector price(m); for (int i = 0; i < n; ++i) { infile >> prestige[i]; } for (int i = 0; i < m; ++i) { infile >> roads[i].first >> roads[i].second; int s = abs(roads[i].first - roads[i].second); } vector visited(n + 1, false); int curr = 1; count = 0; days = 1; for (int i = 0; i < n; ++i) { outfile << prestige[i]<< " "; } outfile << "\n"; outfile << days; outfile << "\n"; outfile<< curr<< " "; while (count < n - 1) { int cheapestNext = -1; int cheapestCost = INT_MAX; bool found = false; for (int i = 0; i < m; i++) { if (roads[i].first == curr && !visited[roads[i].second]) { if (price[i] < cheapestCost) { cheapestCost = price[i]; cheapestNext = roads[i].second; found = true; } } else if (roads[i].second == curr && !visited[roads[i].first]) { if (price[i] < cheapestCost) { cheapestCost = price[i]; cheapestNext = roads[i].first; found = true; } } } if (found) { outfile <