#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;
pSubGateBucket += pLastSubGateBucket;
smallGateBucketList[lastIdx].second += pLastSubGateBucket;
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(7, 3));
smallGateBucketList.push_back(make_pair(6, 4));
smallGateBucketList.push_back(make_pair(3, 7));
smallGateBucketList.push_back(make_pair(3, 7));
smallGateBucketList.push_back(make_pair(2, 8));
smallGateBucketList.push_back(make_pair(2, 8));
smallGateBucketList.push_back(make_pair(2, 8));
smallGateBucketList.push_back(make_pair(2, 8));
smallGateBucketList.push_back(make_pair(2, 8));
myfUNC(smallGateBucketList);
for(auto& data : smallGateBucketList){
std::cout<<"\n data : "<<data.first<<" , "<<data.second;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSAgPHV0aWxpdHk+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKdm9pZCBteWZVTkMoc3RkOjp2ZWN0b3I8c3RkOjpwYWlyPHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQ+PiYgc21hbGxHYXRlQnVja2V0TGlzdCkKewogICAgdW5zaWduZWQgaW50IGlkeCA9IDA7CiAgICB1bnNpZ25lZCBpbnQgbGFzdElkeCA9IHNtYWxsR2F0ZUJ1Y2tldExpc3Quc2l6ZSgpIC0gMTsKICAgIHdoaWxlKGlkeCA8IGxhc3RJZHgpewogICAgICAgIHVuc2lnbmVkIGludCYgcFN1YkdhdGVCdWNrZXQgPSBzbWFsbEdhdGVCdWNrZXRMaXN0W2lkeF0uZmlyc3Q7CiAgICAgICAgdW5zaWduZWQgaW50JiByZW1TdWJCdWNrZXRTaXplID0gc21hbGxHYXRlQnVja2V0TGlzdFtpZHhdLnNlY29uZDsKICAgICAgICB1bnNpZ25lZCBpbnQmIHBMYXN0U3ViR2F0ZUJ1Y2tldCA9IHNtYWxsR2F0ZUJ1Y2tldExpc3RbbGFzdElkeF0uZmlyc3Q7CiAgICAgICAgaWYocmVtU3ViQnVja2V0U2l6ZSA+PSBwTGFzdFN1YkdhdGVCdWNrZXQpIHsKICAgICAgICAgICAgc21hbGxHYXRlQnVja2V0TGlzdFtpZHhdLnNlY29uZCAtPSBwTGFzdFN1YkdhdGVCdWNrZXQ7CiAgICAgICAgICAgIHN0ZDo6Y291dDw8IlxuIE1lcmdlZCA6IGRhdGEgMSA6ICI8PHBTdWJHYXRlQnVja2V0PDwiICwgIjw8cmVtU3ViQnVja2V0U2l6ZTsKICAgICAgICAgICAgc3RkOjpjb3V0PDwiIDogZGF0YSAyIDogIjw8cExhc3RTdWJHYXRlQnVja2V0PDwiICwgIjw8c21hbGxHYXRlQnVja2V0TGlzdFtsYXN0SWR4XS5zZWNvbmQ7CiAgICAgICAgICAgIHBTdWJHYXRlQnVja2V0ICs9IHBMYXN0U3ViR2F0ZUJ1Y2tldDsKICAgICAgICAgICAgc21hbGxHYXRlQnVja2V0TGlzdFtsYXN0SWR4XS5zZWNvbmQgKz0gcExhc3RTdWJHYXRlQnVja2V0OwogICAgICAgICAgICBsYXN0SWR4LS07CiAgICAgICAgICAgIHBMYXN0U3ViR2F0ZUJ1Y2tldCA9IDA7CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgICsraWR4OwogICAgICAgIH0KICAgIH0KfQogCmludCBtYWluKCkgewogICAgY291dCA8PCAiSGVsbG8gR2VlayEiOwogICAgLy9zdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8aW50LGludD4+IGtrOwogICAgLy9ray5wdXNoX2JhY2sobWFrZV9wYWlyKDIsMikpOwogICAgc3RkOjp2ZWN0b3I8c3RkOjpwYWlyPHVuc2lnbmVkIGludCx1bnNpZ25lZCBpbnQ+PiBzbWFsbEdhdGVCdWNrZXRMaXN0OwogICAgc21hbGxHYXRlQnVja2V0TGlzdC5wdXNoX2JhY2sobWFrZV9wYWlyKDcsIDMpKTsKICAgIHNtYWxsR2F0ZUJ1Y2tldExpc3QucHVzaF9iYWNrKG1ha2VfcGFpcig2LCA0KSk7CiAgICBzbWFsbEdhdGVCdWNrZXRMaXN0LnB1c2hfYmFjayhtYWtlX3BhaXIoMywgNykpOwogICAgc21hbGxHYXRlQnVja2V0TGlzdC5wdXNoX2JhY2sobWFrZV9wYWlyKDMsIDcpKTsKICAgIHNtYWxsR2F0ZUJ1Y2tldExpc3QucHVzaF9iYWNrKG1ha2VfcGFpcigyLCA4KSk7CiAgICBzbWFsbEdhdGVCdWNrZXRMaXN0LnB1c2hfYmFjayhtYWtlX3BhaXIoMiwgOCkpOwogICAgc21hbGxHYXRlQnVja2V0TGlzdC5wdXNoX2JhY2sobWFrZV9wYWlyKDIsIDgpKTsKICAgIHNtYWxsR2F0ZUJ1Y2tldExpc3QucHVzaF9iYWNrKG1ha2VfcGFpcigyLCA4KSk7CiAgICBzbWFsbEdhdGVCdWNrZXRMaXN0LnB1c2hfYmFjayhtYWtlX3BhaXIoMiwgOCkpOwogCiAgICBteWZVTkMoc21hbGxHYXRlQnVja2V0TGlzdCk7CiAgICBmb3IoYXV0byYgZGF0YSA6IHNtYWxsR2F0ZUJ1Y2tldExpc3QpewogICAgICAgIHN0ZDo6Y291dDw8IlxuIGRhdGEgOiAiPDxkYXRhLmZpcnN0PDwiICwgIjw8ZGF0YS5zZWNvbmQ7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==
Hello Geek!
Merged : data 1 : 7 , 1 : data 2 : 2 , 8
Merged : data 1 : 6 , 2 : data 2 : 2 , 8
Merged : data 1 : 8 , 0 : data 2 : 2 , 8
Merged : data 1 : 3 , 5 : data 2 : 2 , 8
Merged : data 1 : 5 , 3 : data 2 : 2 , 8
Merged : data 1 : 7 , 0 : data 2 : 3 , 7
data : 9 , 1
data : 10 , 0
data : 10 , 0
data : 0 , 10
data : 0 , 10
data : 0 , 10
data : 0 , 10
data : 0 , 10
data : 0 , 10