#include <iostream>
#include <algorithm>
typedef union {
int data[2];
} Pair;
bool compare(Pair i,Pair j) { return i.data[0] < j.data[0]; }
int main() {
int N=5;
int data[10] = {1,2, 7,8, 13,14, 4,5, 10,11};
Pair *pairs = (Pair *)((void *)data);
std::cout << "unsorted" << std::endl;
for(int i=0; i<N;++i) std::cout << i << ": (" << pairs[i].data[0] << ", " << pairs[i].data[1] << ")" << 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].data[0] << ", " << pairs[i].data[1] << ")" << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdHlwZWRlZiB1bmlvbiB7CglpbnQgZGF0YVsyXTsKfSBQYWlyOwoKYm9vbCBjb21wYXJlKFBhaXIgaSxQYWlyIGopIHsgcmV0dXJuIGkuZGF0YVswXSA8IGouZGF0YVswXTsgfQoKaW50IG1haW4oKSB7CglpbnQgTj01OwoJaW50IGRhdGFbMTBdID0gezEsMiwgNyw4LCAxMywxNCwgNCw1LCAxMCwxMX07CglQYWlyICpwYWlycyAgPSAoUGFpciAqKSgodm9pZCAqKWRhdGEpOyAKCQoJc3RkOjpjb3V0IDw8ICJ1bnNvcnRlZCIgPDwgc3RkOjplbmRsOwoJZm9yKGludCBpPTA7IGk8TjsrK2kpIHN0ZDo6Y291dCA8PCBpIDw8ICI6ICgiIDw8IHBhaXJzW2ldLmRhdGFbMF0gPDwgIiwgIiA8PCBwYWlyc1tpXS5kYXRhWzFdIDw8ICIpIiA8PCBzdGQ6OmVuZGw7CgkKCXN0ZDo6c29ydChwYWlycywgcGFpcnMrTiwgY29tcGFyZSk7CgkKCXN0ZDo6Y291dCA8PCAic29ydGVkIiA8PCBzdGQ6OmVuZGw7Cglmb3IoaW50IGk9MDsgaTxOOysraSkgc3RkOjpjb3V0IDw8IGkgPDwgIjogKCIgPDwgcGFpcnNbaV0uZGF0YVswXSA8PCAiLCAiIDw8IHBhaXJzW2ldLmRhdGFbMV0gPDwgIikiIDw8IHN0ZDo6ZW5kbDsKCQoJcmV0dXJuIDA7Cn0=
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)