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; }
相关文章推荐
- Xilinx Spartan 6 驱动ADS1278/4
- iOS thread1:exc_bad)access(code=exc_1386_gpflt) 调试方案
- codeforces 10C C. Digital Root(数论)
- 命名规范(2)通用命名约定
- 【前端学习笔记】2015-09-01 附 split()方法、readyState
- 能耗折算标准煤公式
- js原生无缝滚动demo
- leetcode Linked List Cycle II
- poj 2286 The Rotation Game IDA*算法
- php第一阶段html_table(2)
- 自动释放池什么时候创建,什么时候销毁?
- js,php 使用正则表达式解析GPS数据
- 项目:××官网改版总结经验和收获
- mysql常用语句
- 8月国内网站流量统计TOP5:360安全中心季军
- android调整版本问题记载
- RevitAPI: PlanarFace.Normal 和 PlanarFace.FaceNormal
- voltDB 查询语句解析过程 初步分析
- SQL Server 查询数据库中所有的表名及行数
- 关于C++中的显示调用explicit