#include <cstdio> #include <cstdint> #include <cinttypes> #include <vector> #include <algorithm> struct ChildReading { uint32_t id; std::vector<uint32_t> readings; }; int main(int argc, char const *argv[]) { uint32_t readings_count; scanf("%" PRIu32, &readings_count); uint32_t children_count; scanf("%" PRIu32, &children_count); std::vector<uint32_t> alinas_readings; while (readings_count--) { uint32_t temp; scanf("%" PRIu32, &temp); alinas_readings.push_back(temp); } std::vector<ChildReading> childrens_readings; childrens_readings.reserve(children_count); childrens_readings.push_back({1, alinas_readings}); for (uint32_t i = 2; i <= children_count; ++i) { uint32_t changed_pos; scanf("%" PRIu32, &changed_pos); uint32_t new_temp; scanf("%" PRIu32, &new_temp); auto readings = childrens_readings[i-1-1].readings; readings[changed_pos-1] = new_temp; childrens_readings.push_back({i, readings}); } std::stable_sort( childrens_readings.begin(), childrens_readings.end(), [](const ChildReading &a, const ChildReading &b) { return a.readings < b.readings; } ); for (const auto &cr : childrens_readings) { printf("%" PRIu32 " ", cr.id); } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include <cstdio> #include <cstdint> #include <cinttypes> #include <vector> #include <algorithm> struct ChildReading { uint32_t id; std::vector<uint32_t> readings; }; int main(int argc, char const *argv[]) { uint32_t readings_count; scanf("%" PRIu32, &readings_count); uint32_t children_count; scanf("%" PRIu32, &children_count); std::vector<uint32_t> alinas_readings; while (readings_count--) { uint32_t temp; scanf("%" PRIu32, &temp); alinas_readings.push_back(temp); } std::vector<ChildReading> childrens_readings; childrens_readings.reserve(children_count); childrens_readings.push_back({1, alinas_readings}); for (uint32_t i = 2; i <= children_count; ++i) { uint32_t changed_pos; scanf("%" PRIu32, &changed_pos); uint32_t new_temp; scanf("%" PRIu32, &new_temp); auto readings = childrens_readings[i-1-1].readings; readings[changed_pos-1] = new_temp; childrens_readings.push_back({i, readings}); } std::stable_sort( childrens_readings.begin(), childrens_readings.end(), [](const ChildReading &a, const ChildReading &b) { return a.readings < b.readings; } ); for (const auto &cr : childrens_readings) { printf("%" PRIu32 " ", cr.id); } return 0; } |