Timue 1795

系统 1400 0
      
        #include 
      
      
        <
      
      
        iostream
      
      
        >
      
      
        
#include
< string >
#include
< map >
#include
< deque >
using namespace std;

struct husband_st {

string buy_name;
int buy_amount;

}
* husband_t;

husband_st mem[
1001 ];

int main() {

int M, N, amount, count = 0 , remain, temp_remain, first_guy, second_guy;
map
< string , int > shop;
deque
< int > line;
husband_st temp;
string name, of;

cin
>> M;
for ( int i = 0 ;i < M;i ++ ) {
cin
>> amount >> of >> name;
shop.insert(pair
< string , int > (name, amount));
}

cin
>> N;

for ( int i = 0 ;i < N;i ++ ) {
cin
>> amount >> of >> name;
temp.buy_amount
= amount;
temp.buy_name
= name;
mem[i]
= temp;
line.push_back(i);
}

while ( ! line.empty()) {
first_guy
= line.front();
remain
= shop[mem[first_guy].buy_name];
temp_remain
= remain - mem[first_guy].buy_amount;

if (remain == 0 ) { // 没货了,老婆要打死我了 T_T
line.pop_front();
}
else if (temp_remain >= 0 ) { // 有货,可以走了 ^_^
shop[mem[first_guy].buy_name] = temp_remain;
line.pop_front();
}
else { // 货不够,问问老婆先
mem[first_guy].buy_amount = remain; // 老婆说这个数还可以接受
line.pop_front();

if (line.empty()) { // 前面那人打电话问老婆去了,主角可以去买了。
count ++ ;
cout
<< count << endl;
return 0 ;
}

second_guy
= line.front();
line.pop_front();
line.push_front(first_guy);
line.push_front(second_guy);
}

count
++ ;
}

cout
<< count << endl;

return 0 ;
}


忽略了一个问题,就是主角前面只有一个人,并且他要打电话问老婆~~看了discuss,没太认真去想。

Timue 1795


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论