#include <iostream>
#include <algorithm>
struct Pair {
int first; int second;
};
bool compare(const Pair &p1, const Pair &p2) { return p1.first < p2.first; }
int main() {
int N=5;
int data[10]= {1,2,7,8,13,14,10,11,4,5};
Pair *pairs = (Pair *)data;
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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKc3RydWN0IFBhaXIgewoJaW50IGZpcnN0OyBpbnQgc2Vjb25kOwp9Owpib29sIGNvbXBhcmUoY29uc3QgUGFpciAmcDEsIGNvbnN0IFBhaXIgJnAyKSB7IHJldHVybiBwMS5maXJzdCA8IHAyLmZpcnN0OyB9CgppbnQgbWFpbigpIHsKCWludCBOPTU7CglpbnQgZGF0YVsxMF09IHsxLDIsNyw4LDEzLDE0LDEwLDExLDQsNX07CglQYWlyICpwYWlycyA9IChQYWlyICopZGF0YTsKCQoJc3RkOjpjb3V0IDw8ICJ1bnNvcnRlZCIgPDwgc3RkOjplbmRsOwoJZm9yKGludCBpPTA7IGk8TjsgKytpKQoJCXN0ZDo6Y291dCA8PCBpIDw8ICI6ICgiIDw8IHBhaXJzW2ldLmZpcnN0IDw8ICIsICIgPDwgcGFpcnNbaV0uc2Vjb25kIDw8ICIpIiA8PCBzdGQ6OmVuZGw7CgkKCXN0ZDo6c29ydChwYWlycywgcGFpcnMrTiwgY29tcGFyZSk7CgkKCXN0ZDo6Y291dCA8PCAic29ydGVkIiA8PCBzdGQ6OmVuZGw7Cglmb3IoaW50IGk9MDsgaTxOOyArK2kpCgkJc3RkOjpjb3V0IDw8IGkgPDwgIjogKCIgPDwgcGFpcnNbaV0uZmlyc3QgPDwgIiwgIiA8PCBwYWlyc1tpXS5zZWNvbmQgPDwgIikiIDw8IHN0ZDo6ZW5kbDsKCXJldHVybiAwOwp9
unsorted
0: (1, 2)
1: (7, 8)
2: (13, 14)
3: (10, 11)
4: (4, 5)
sorted
0: (1, 2)
1: (4, 5)
2: (7, 8)
3: (10, 11)
4: (13, 14)