#include <iostream>
#include <algorithm>
#include <memory>
typedef std::pair<int,int> Pair;
bool compare(const Pair& i, const Pair& j) { return i.first < j.first; }
int main() {
const int N=5;
Pair pairs[N] = {{1,2}, {7,8}, {13,14}, {4,5}, {10,11}};
std::cout << "unsorted" << std::endl;
for(int i=0; i<N;++i) std::cout << i << ": (" << pairs[i].first << ", " << pairs[i].second << ")" << std::endl;
std::sort(pairs, pairs+N, compare);
std::cout << "sorted" << std::endl;
for(int i=0; i<N;++i) std::cout << i << ": (" << pairs[i].first << ", " << pairs[i].second << ")" << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8bWVtb3J5PgoKdHlwZWRlZiBzdGQ6OnBhaXI8aW50LGludD4gUGFpcjsKCmJvb2wgY29tcGFyZShjb25zdCBQYWlyJiBpLCBjb25zdCBQYWlyJiBqKSB7IHJldHVybiBpLmZpcnN0IDwgai5maXJzdDsgfQoKaW50IG1haW4oKSB7Cgljb25zdCBpbnQgTj01OwoJUGFpciBwYWlyc1tOXSA9IHt7MSwyfSwgezcsOH0sIHsxMywxNH0sIHs0LDV9LCB7MTAsMTF9fTsKCglzdGQ6OmNvdXQgPDwgInVuc29ydGVkIiA8PCBzdGQ6OmVuZGw7Cglmb3IoaW50IGk9MDsgaTxOOysraSkgc3RkOjpjb3V0IDw8IGkgPDwgIjogKCIgPDwgcGFpcnNbaV0uZmlyc3QgPDwgIiwgIiA8PCBwYWlyc1tpXS5zZWNvbmQgPDwgIikiIDw8IHN0ZDo6ZW5kbDsKCQoJc3RkOjpzb3J0KHBhaXJzLCBwYWlycytOLCBjb21wYXJlKTsKCQoJc3RkOjpjb3V0IDw8ICJzb3J0ZWQiIDw8IHN0ZDo6ZW5kbDsKCWZvcihpbnQgaT0wOyBpPE47KytpKSBzdGQ6OmNvdXQgPDwgaSA8PCAiOiAoIiA8PCBwYWlyc1tpXS5maXJzdCA8PCAiLCAiIDw8IHBhaXJzW2ldLnNlY29uZCA8PCAiKSIgPDwgc3RkOjplbmRsOwoJCglyZXR1cm4gMDsKfQ==
unsorted
0: (1, 2)
1: (7, 8)
2: (13, 14)
3: (4, 5)
4: (10, 11)
sorted
0: (1, 2)
1: (4, 5)
2: (7, 8)
3: (10, 11)
4: (13, 14)