#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void my_sort(int id[], double netpay[], int n) {
typedef std::pair<int, double> data_pair_t;
std::vector<data_pair_t> data;
for (int i = 0; i < n; i++) {
data.push_back(make_pair(id[i], netpay[i]));
}
sort(data.begin(), data.end(), [](data_pair_t a, data_pair_t b) {
return a.second < b.second;
} );
for(int i = 0; i < n; i++) {
id[i] = data[i].first;
netpay[i] = data[i].second;
}
}
int main() {
int id[] = {11111, 22222, 33333};
double netpay[] = {456.78, 891.01, 112.13};
int n = end(id)-begin(id);
cout << "Before sorting\n";
for(int i = 0; i < n; ++i) {
cout << id[i] << "\t" << netpay[i] << endl;
}
cout << "\n\nAfter sorting\n";
my_sort(id, netpay, n);
for(int i = 0; i < n; ++i) {
cout << id[i] << "\t" << netpay[i] << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBteV9zb3J0KGludCBpZFtdLCBkb3VibGUgbmV0cGF5W10sIGludCBuKSB7CiAgICB0eXBlZGVmIHN0ZDo6cGFpcjxpbnQsIGRvdWJsZT4gZGF0YV9wYWlyX3Q7CiAgICBzdGQ6OnZlY3RvcjxkYXRhX3BhaXJfdD4gZGF0YTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgZGF0YS5wdXNoX2JhY2sobWFrZV9wYWlyKGlkW2ldLCBuZXRwYXlbaV0pKTsKICAgIH0KICAgIHNvcnQoZGF0YS5iZWdpbigpLCBkYXRhLmVuZCgpLCBbXShkYXRhX3BhaXJfdCBhLCBkYXRhX3BhaXJfdCBiKSB7CgkJcmV0dXJuIGEuc2Vjb25kIDwgYi5zZWNvbmQ7CiAgICAgICAgfSApOyAgCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAJaWRbaV0gPSBkYXRhW2ldLmZpcnN0OwogICAgCW5ldHBheVtpXSA9IGRhdGFbaV0uc2Vjb25kOwogICAgfQp9CgoKaW50IG1haW4oKSB7CglpbnQgaWRbXSA9IHsxMTExMSwgMjIyMjIsIDMzMzMzfTsKCWRvdWJsZSBuZXRwYXlbXSA9IHs0NTYuNzgsIDg5MS4wMSwgMTEyLjEzfTsKCWludCBuID0gZW5kKGlkKS1iZWdpbihpZCk7CgkKCWNvdXQgPDwgIkJlZm9yZSBzb3J0aW5nXG4iOwoJZm9yKGludCBpID0gMDsgaSA8IG47ICsraSkgewoJCWNvdXQgPDwgaWRbaV0gPDwgIlx0IiA8PCBuZXRwYXlbaV0gPDwgZW5kbDsKCX0KCWNvdXQgPDwgIlxuXG5BZnRlciBzb3J0aW5nXG4iOwoJCglteV9zb3J0KGlkLCBuZXRwYXksIG4pOwoKCWZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKCQljb3V0IDw8IGlkW2ldIDw8ICJcdCIgPDwgbmV0cGF5W2ldIDw8IGVuZGw7Cgl9CglyZXR1cm4gMDsKfQ==