2016华为机试-自动售货机

来源:互联网 发布:学蒙古语软件下载 编辑:程序博客网 时间:2024/04/30 02:55
#include<iostream>#include<string>#include<vector>using namespace std;int main(){string str;while(getline(cin,str)){int countA1=5;int countA2=10;int countA3=14;int money1=5;int money2=5;int money3=3;vector<int> givemoney;int givesum=0;vector<int> backmoney;vector<int>buyinfo;int buysum=0;for (int i = 0; i < str.size(); ++i){if (str[i]=='p'){i=i+2;if (str[i]=='5'){money3++;}if (str[i]=='2'){money2++;}if(str[i]=='1'){money1++;}givemoney.push_back(str[i]-'0');givesum+=str[i]-'0';continue;}if (str[i]=='b'){string temp;temp+=str[i+2];temp+=str[i+3];i+=3;if (temp=="A1"){countA1--;buysum+=2;temp="";continue;}if (temp=="A2"){countA2--;buysum+=3;temp="";continue;}if (temp=="A3"){countA3--;buysum+=4;temp="";continue;}}}int leavesum=givesum-buysum;if (buysum==0){for (int t = 0; t <givemoney.size(); ++t){if (givemoney[t]==5){money3--;}if (givemoney[t]==2){money2--;}if (givemoney[t]==1){money1;}}}while(leavesum>0&&buysum!=0){if (leavesum>=5)    {    int c5=leavesum/5;    money3-=c5;    leavesum=leavesum%5;    continue;   }   if (leavesum>=2)   {   int c2=leavesum/2;   money2-=c2;   leavesum=leavesum%2;   continue;   }   leavesum-=1;   money1-=1;}cout<<"A1"<<" "<<countA1<<","<<"A2"<<" "<<countA2<<","<<"A3"<<" "<<countA3<<";";cout<<1<<" "<<money1<<","<<2<<" "<<money2<<","<<5<<" "<<money3<<endl;}return 0;}

0 0
原创粉丝点击