您的位置:首页 > 理论基础

HDU-计算机学院大学生程序设计竞赛(2015’11)1002 投币洗衣机(模拟)

2015-11-29 16:26 405 查看
1001-搬砖(贪心):/article/9545198.html

1003-玩骰子(枚举) :/article/9545203.html

1004-质方数(打表):/article/9545200.html

1005-ACM组队安排(排列组合):/article/9545204.html

1006-逆袭指数(枚举):/article/9545205.html

1007-油菜花王国(并查集):/article/9545201.html

1008-游乐场(贪心):/article/9545202.html


投币洗衣机

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)



Problem Description

如今大学生的生活条件越来越好了,近期,内蒙某高校在每个寝室楼都添置了一台投币洗衣机。

小明作为经常参加训练的ACM队员,非常忙(Lan)碌(Duo),当然非常乐意把衣服丢给洗衣机解决啦。根据要洗的衣服数量,投币洗衣机每次需要投入2-4 枚硬币。

小明是一个非常容易出汗的男生,夏天就要到了,每天都要洗澡,所以也就有大量衣服需要洗。

小明是这么制定投币洗衣机计划的:当屯积的衣服数量大于等于a且小于b的时候,他就会马上全部拿去给洗衣机洗,并且投入2枚硬币;当屯积的衣服数量大于等于b且小于c的时候,他就会马上全部拿去给洗衣机洗,并且投入3枚硬币;当屯积的衣服数量大于等于c的时候,他就会马上全部拿去给洗衣机洗,并且投入4枚硬币。其他细节见样例。

现在知道,小明过去n 天每天换下的衣服数量v件,需要你帮忙计算出小明在过去这段时间洗衣服一共花了多少钱。

Input

输入包含多组测试数据。

每组数据第一行是4个正整数 n (1<=n<=10000) 、a 、b 、c (1<=a<b<c<=300),具体含义见题目描述。

每组数据第二行包含n个正整数,按顺序表示过去n天每天产生的衣服数量v(1<=v<=1000)。

Output

每组数据输出一个整数,表示小明过去n天中洗衣服一共花了多少钱。

每组输出占一行。

Sample Input

3 2 4 6
2 2 1


Sample Output

4


水题,直接模拟即可

#include <cstdio>

using namespace std;

int n,a,b,c,ans,v,sum;

int main() {
while(4==scanf("%d%d%d%d",&n,&a,&b,&c)) {
sum=ans=0;
while(n--) {
scanf("%d",&v);
sum+=v;
if(sum>=a&&sum<b) {
ans+=2;
sum=0;
}
else if(sum>=b&&sum<c) {
ans+=3;
sum=0;
}
else if(sum>=c){
ans+=4;
sum=0;
}
}
printf("%d\n",ans);
}
return 0;
}


1001-搬砖(贪心):/article/9545198.html

1002-投币洗衣机(模拟):/article/9545199.html

1003-玩骰子(枚举) :/article/9545203.html

1004-质方数(打表):/article/9545200.html

1005-ACM组队安排(排列组合):/article/9545204.html

1006-逆袭指数(枚举):/article/9545205.html

1007-油菜花王国(并查集):/article/9545201.html

1008-游乐场(贪心):/article/9545202.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: