#include <iostream>
#include <vector>
#include <algorithm>
struct PancakeStats
{
PancakeStats(int personId, int numberOfPancakes)
: personId(personId)
, numberOfPancakes(numberOfPancakes)
{
}
int personId;
int numberOfPancakes;
bool operator < (const PancakeStats& other)
{
return numberOfPancakes < other.numberOfPancakes;
}
};
int main()
{
const auto numberOfInputs = 3;
int numberOfPancakes = 0;
using IntPair_t = std::pair<int, int>;
std::vector<PancakeStats> structVector;
std::vector<IntPair_t> pairVector;
for (auto i = 0; i < numberOfInputs; ++i)
{
std::cin >> numberOfPancakes;
structVector.push_back(PancakeStats(i + 1, numberOfPancakes));
pairVector.push_back(std::make_pair(i + 1, numberOfPancakes));
}
std::sort(structVector.begin(), structVector.end());
for (const auto& entry : structVector)
{
std::cout << entry.personId << " | " << entry.numberOfPancakes << std::endl;
}
std::sort(pairVector.begin(), pairVector.end(), [](const IntPair_t &lhs,
const IntPair_t &rhs)
{
return lhs.second < rhs.second;
});
for (const auto& entry : pairVector)
{
std::cout << entry.first << " | " << entry.second << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKc3RydWN0IFBhbmNha2VTdGF0cwp7CglQYW5jYWtlU3RhdHMoaW50IHBlcnNvbklkLCBpbnQgbnVtYmVyT2ZQYW5jYWtlcykKCTogcGVyc29uSWQocGVyc29uSWQpCgksIG51bWJlck9mUGFuY2FrZXMobnVtYmVyT2ZQYW5jYWtlcykKCXsKCQkKCX0KCWludCBwZXJzb25JZDsKCWludCBudW1iZXJPZlBhbmNha2VzOwoJCglib29sIG9wZXJhdG9yIDwgKGNvbnN0IFBhbmNha2VTdGF0cyYgb3RoZXIpCgl7CgkJcmV0dXJuIG51bWJlck9mUGFuY2FrZXMgPCBvdGhlci5udW1iZXJPZlBhbmNha2VzOwoJfQp9OwoKaW50IG1haW4oKSAKewoJY29uc3QgYXV0byBudW1iZXJPZklucHV0cyA9IDM7CglpbnQgbnVtYmVyT2ZQYW5jYWtlcyA9IDA7CgkKCXVzaW5nIEludFBhaXJfdCA9IHN0ZDo6cGFpcjxpbnQsIGludD47CglzdGQ6OnZlY3RvcjxQYW5jYWtlU3RhdHM+IHN0cnVjdFZlY3RvcjsKCXN0ZDo6dmVjdG9yPEludFBhaXJfdD4gcGFpclZlY3RvcjsKCQoJZm9yIChhdXRvIGkgPSAwOyBpIDwgbnVtYmVyT2ZJbnB1dHM7ICsraSkKCXsKCQlzdGQ6OmNpbiA+PiBudW1iZXJPZlBhbmNha2VzOwoJCXN0cnVjdFZlY3Rvci5wdXNoX2JhY2soUGFuY2FrZVN0YXRzKGkgKyAxLCBudW1iZXJPZlBhbmNha2VzKSk7CgkJcGFpclZlY3Rvci5wdXNoX2JhY2soc3RkOjptYWtlX3BhaXIoaSArIDEsIG51bWJlck9mUGFuY2FrZXMpKTsKCX0KCQoJc3RkOjpzb3J0KHN0cnVjdFZlY3Rvci5iZWdpbigpLCBzdHJ1Y3RWZWN0b3IuZW5kKCkpOwoJCglmb3IgKGNvbnN0IGF1dG8mIGVudHJ5IDogc3RydWN0VmVjdG9yKQoJewoJCXN0ZDo6Y291dCA8PCBlbnRyeS5wZXJzb25JZCA8PCAiIHwgIiA8PCBlbnRyeS5udW1iZXJPZlBhbmNha2VzIDw8IHN0ZDo6ZW5kbDsKCX0KCQoJc3RkOjpzb3J0KHBhaXJWZWN0b3IuYmVnaW4oKSwgcGFpclZlY3Rvci5lbmQoKSwgW10oY29uc3QgSW50UGFpcl90ICZsaHMsCgkJCQkJCQkJCQkJCQkgICBjb25zdCBJbnRQYWlyX3QgJnJocykKCQkJCQkJCQkJCQkJCSAgIHsKCQkJCQkJCQkJCQkJCSAgIAlyZXR1cm4gbGhzLnNlY29uZCA8IHJocy5zZWNvbmQ7CgkJCQkJCQkJCQkJCQkgICB9KTsKCQkJCQkJCQkJCQkJCSAgIAoJZm9yIChjb25zdCBhdXRvJiBlbnRyeSA6IHBhaXJWZWN0b3IpCgl7CgkJc3RkOjpjb3V0IDw8IGVudHJ5LmZpcnN0IDw8ICIgfCAiIDw8IGVudHJ5LnNlY29uZCA8PCBzdGQ6OmVuZGw7Cgl9CgkKCXJldHVybiAwOwp9