#include <vector>
#include <algorithm>
#include <iostream>
struct Node
{
int x;
int y;
float value;
};
int main() {
std::vector<Node> vec {
{5, 6, 0.f}, {2, 4, 0.f}, {1, 1, 0.f}, {1, 0, 0.f}, {8, 10, 0.f}, {4, 7, 0.f},
{7, 1, 0.f}, {5, 4, 0.f}, {6, 1, 0.f}, {1, 4, 0.f}, {3, 10, 0.f}, {7, 2, 0.f}
};
std::sort(std::begin(vec), std::end(vec), [](const Node& a, const Node& b) {
return a.y < b.y || (a.y == b.y && a.x < b.x);
});
std::cout << "x y" << std::endl << std::endl;
for (auto const &n : vec)
std::cout << n.x << " " << n.y << std::endl;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IE5vZGUKewogICAgaW50IHg7CiAgICBpbnQgeTsKICAgIGZsb2F0IHZhbHVlOwp9OwoKaW50IG1haW4oKSB7CiAgICBzdGQ6OnZlY3RvcjxOb2RlPiB2ZWMgewogICAgICAgIHs1LCA2LCAwLmZ9LCB7MiwgNCwgMC5mfSwgezEsIDEsIDAuZn0sIHsxLCAwLCAwLmZ9LCB7OCwgMTAsIDAuZn0sIHs0LCA3LCAwLmZ9LAogICAgICAgIHs3LCAxLCAwLmZ9LCB7NSwgNCwgMC5mfSwgezYsIDEsIDAuZn0sIHsxLCA0LCAwLmZ9LCB7MywgMTAsIDAuZn0sIHs3LCAyLCAwLmZ9CiAgICB9OwoKICAgIHN0ZDo6c29ydChzdGQ6OmJlZ2luKHZlYyksIHN0ZDo6ZW5kKHZlYyksIFtdKGNvbnN0IE5vZGUmIGEsIGNvbnN0IE5vZGUmIGIpIHsKICAgICAgICByZXR1cm4gYS55IDwgYi55IHx8IChhLnkgPT0gYi55ICYmIGEueCA8IGIueCk7CiAgICB9KTsKCiAgICBzdGQ6OmNvdXQgPDwgInggeSIgPDwgc3RkOjplbmRsIDw8IHN0ZDo6ZW5kbDsKICAgIGZvciAoYXV0byBjb25zdCAmbiA6IHZlYykKICAgICAgICBzdGQ6OmNvdXQgPDwgbi54IDw8ICIgIiA8PCBuLnkgPDwgc3RkOjplbmRsOwp9Cg==