您的位置:首页 > 其它

2016华为机试-自动售货机

2015-09-01 10:35 260 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: