#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; } |
English