#include <iostream>
#include <vector>
#include <utility>
using namespace std;
void myfUNC(std::vector<std::pair<unsigned int,unsigned int>>& smallGateBucketList)
{
unsigned int idx = 0;
unsigned int lastIdx = smallGateBucketList.size() - 1;
while(idx < lastIdx){
unsigned int& pSubGateBucket = smallGateBucketList[idx].first;
unsigned int& remSubBucketSize = smallGateBucketList[idx].second;
unsigned int& pLastSubGateBucket = smallGateBucketList[lastIdx].first;
if(remSubBucketSize >= pLastSubGateBucket) {
smallGateBucketList[idx].second -= pLastSubGateBucket;
std::cout<<"\n Merged : data 1 : "<<pSubGateBucket<<" , "<<remSubBucketSize;
std::cout<<" : data 2 : "<<pLastSubGateBucket<<" , "<<smallGateBucketList[lastIdx].second;
lastIdx--;
pLastSubGateBucket = 0;
}
else{
++idx;
}
}
}
int main() {
cout << "Hello Geek!";
//std::vector<std::pair<int,int>> kk;
//kk.push_back(make_pair(2,2));
std::vector<std::pair<unsigned int,unsigned int>> smallGateBucketList;
smallGateBucketList.push_back(make_pair(8000, 2000));
smallGateBucketList.push_back(make_pair(6000, 4000));
smallGateBucketList.push_back(make_pair(5000, 5000));
smallGateBucketList.push_back(make_pair(4000, 6000));
smallGateBucketList.push_back(make_pair(2000, 8000));
smallGateBucketList.push_back(make_pair(500, 9500));
smallGateBucketList.push_back(make_pair(200, 9800));
smallGateBucketList.push_back(make_pair(50, 9950));
myfUNC(smallGateBucketList);
for(auto& data : smallGateBucketList){
std::cout<<"\n data : "<<data.first<<" , "<<data.second;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSAgPHV0aWxpdHk+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIG15ZlVOQyhzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8dW5zaWduZWQgaW50LHVuc2lnbmVkIGludD4+JiBzbWFsbEdhdGVCdWNrZXRMaXN0KQp7CiAgICB1bnNpZ25lZCBpbnQgaWR4ID0gMDsKICAgIHVuc2lnbmVkIGludCBsYXN0SWR4ID0gc21hbGxHYXRlQnVja2V0TGlzdC5zaXplKCkgLSAxOwogICAgd2hpbGUoaWR4IDwgbGFzdElkeCl7CiAgICAgICAgdW5zaWduZWQgaW50JiBwU3ViR2F0ZUJ1Y2tldCA9IHNtYWxsR2F0ZUJ1Y2tldExpc3RbaWR4XS5maXJzdDsKICAgICAgICB1bnNpZ25lZCBpbnQmIHJlbVN1YkJ1Y2tldFNpemUgPSBzbWFsbEdhdGVCdWNrZXRMaXN0W2lkeF0uc2Vjb25kOwogICAgICAgIHVuc2lnbmVkIGludCYgcExhc3RTdWJHYXRlQnVja2V0ID0gc21hbGxHYXRlQnVja2V0TGlzdFtsYXN0SWR4XS5maXJzdDsKICAgICAgICBpZihyZW1TdWJCdWNrZXRTaXplID49IHBMYXN0U3ViR2F0ZUJ1Y2tldCkgewogICAgICAgICAgICBzbWFsbEdhdGVCdWNrZXRMaXN0W2lkeF0uc2Vjb25kIC09IHBMYXN0U3ViR2F0ZUJ1Y2tldDsKICAgICAgICAgICAgc3RkOjpjb3V0PDwiXG4gTWVyZ2VkIDogZGF0YSAxIDogIjw8cFN1YkdhdGVCdWNrZXQ8PCIgLCAiPDxyZW1TdWJCdWNrZXRTaXplOwogICAgICAgICAgICBzdGQ6OmNvdXQ8PCIgOiBkYXRhIDIgOiAiPDxwTGFzdFN1YkdhdGVCdWNrZXQ8PCIgLCAiPDxzbWFsbEdhdGVCdWNrZXRMaXN0W2xhc3RJZHhdLnNlY29uZDsKICAgICAgICAgICAgbGFzdElkeC0tOwogICAgICAgICAgICBwTGFzdFN1YkdhdGVCdWNrZXQgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICArK2lkeDsKICAgICAgICB9CiAgICB9Cn0KICAgIAppbnQgbWFpbigpIHsKICAgIGNvdXQgPDwgIkhlbGxvIEdlZWshIjsKICAgIC8vc3RkOjp2ZWN0b3I8c3RkOjpwYWlyPGludCxpbnQ+PiBrazsKICAgIC8va2sucHVzaF9iYWNrKG1ha2VfcGFpcigyLDIpKTsKICAgIHN0ZDo6dmVjdG9yPHN0ZDo6cGFpcjx1bnNpZ25lZCBpbnQsdW5zaWduZWQgaW50Pj4gc21hbGxHYXRlQnVja2V0TGlzdDsKICAgIHNtYWxsR2F0ZUJ1Y2tldExpc3QucHVzaF9iYWNrKG1ha2VfcGFpcig4MDAwLCAyMDAwKSk7CiAgICBzbWFsbEdhdGVCdWNrZXRMaXN0LnB1c2hfYmFjayhtYWtlX3BhaXIoNjAwMCwgNDAwMCkpOwogICAgc21hbGxHYXRlQnVja2V0TGlzdC5wdXNoX2JhY2sobWFrZV9wYWlyKDUwMDAsIDUwMDApKTsKICAgIHNtYWxsR2F0ZUJ1Y2tldExpc3QucHVzaF9iYWNrKG1ha2VfcGFpcig0MDAwLCA2MDAwKSk7CiAgICBzbWFsbEdhdGVCdWNrZXRMaXN0LnB1c2hfYmFjayhtYWtlX3BhaXIoMjAwMCwgODAwMCkpOwogICAgc21hbGxHYXRlQnVja2V0TGlzdC5wdXNoX2JhY2sobWFrZV9wYWlyKDUwMCwgOTUwMCkpOwogICAgc21hbGxHYXRlQnVja2V0TGlzdC5wdXNoX2JhY2sobWFrZV9wYWlyKDIwMCwgOTgwMCkpOwogICAgc21hbGxHYXRlQnVja2V0TGlzdC5wdXNoX2JhY2sobWFrZV9wYWlyKDUwLCA5OTUwKSk7CiAgICAKICAgIG15ZlVOQyhzbWFsbEdhdGVCdWNrZXRMaXN0KTsKICAgIGZvcihhdXRvJiBkYXRhIDogc21hbGxHYXRlQnVja2V0TGlzdCl7CiAgICAgICAgc3RkOjpjb3V0PDwiXG4gZGF0YSA6ICI8PGRhdGEuZmlyc3Q8PCIgLCAiPDxkYXRhLnNlY29uZDsKICAgIH0KICAgIHJldHVybiAwOwp9
Hello Geek!
Merged : data 1 : 8000 , 1950 : data 2 : 50 , 9950
Merged : data 1 : 8000 , 1750 : data 2 : 200 , 9800
Merged : data 1 : 8000 , 1250 : data 2 : 500 , 9500
Merged : data 1 : 6000 , 2000 : data 2 : 2000 , 8000
Merged : data 1 : 5000 , 1000 : data 2 : 4000 , 6000
data : 8000 , 1250
data : 6000 , 2000
data : 5000 , 1000
data : 0 , 6000
data : 0 , 8000
data : 0 , 9500
data : 0 , 9800
data : 0 , 9950