杭电校赛(投币洗衣机)
2015-12-02 20:03
274 查看
投币洗衣机
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6133 Accepted Submission(s): 1572
[align=left]Problem Description[/align]
如今大学生的生活条件越来越好了,近期,内蒙某高校在每个寝室楼都添置了一台投币洗衣机。
小明作为经常参加训练的ACM队员,非常忙(Lan)碌(Duo),当然非常乐意把衣服丢给洗衣机解决啦。根据要洗的衣服数量,投币洗衣机每次需要投入2-4 枚硬币。
小明是一个非常容易出汗的男生,夏天就要到了,每天都要洗澡,所以也就有大量衣服需要洗。
小明是这么制定投币洗衣机计划的:当屯积的衣服数量大于等于a且小于b的时候,他就会马上全部拿去给洗衣机洗,并且投入2枚硬币;当屯积的衣服数量大于等于b且小于c的时候,他就会马上全部拿去给洗衣机洗,并且投入3枚硬币;当屯积的衣服数量大于等于c的时候,他就会马上全部拿去给洗衣机洗,并且投入4枚硬币。其他细节见样例。
现在知道,小明过去n 天每天换下的衣服数量v件,需要你帮忙计算出小明在过去这段时间洗衣服一共花了多少钱。
[align=left]Input[/align]
输入包含多组测试数据。
每组数据第一行是4个正整数 n (1<=n<=10000) 、a 、b 、c (1<=a<b<c<=300),具体含义见题目描述。
每组数据第二行包含n个正整数,按顺序表示过去n天每天产生的衣服数量v(1<=v<=1000)。
[align=left]Output[/align]
每组数据输出一个整数,表示小明过去n天中洗衣服一共花了多少钱。
每组输出占一行。
[align=left]Sample Input[/align]
3 2 4 6
2 2 1
[align=left]Sample Output[/align]
4
AC代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <queue> #include <stack> #include <map> #include <cstring> #include <climits> #include <cmath> #include <cctype> typedef long long ll; using namespace std; int main() { int i; int n,a,b,c; while(scanf("%d%d%d%d",&n,&a,&b,&c) != EOF) { ll sum = 0; ll sum1 = 0; for(i=0; i<n; i++) { int x; scanf("%d",&x); sum += x; if(sum >= a && sum < b) { sum1 += 2; sum = 0; } else if(sum >=b && sum < c) { sum1+= 3; sum = 0; } else if(sum >= c) { sum1 += 4; sum = 0; } } printf("%I64d\n",sum1); } return 0; }
相关文章推荐
- 1028. List Sorting (25)【排序】——PAT (Advanced Level) Practise
- Java反射研究和实践
- 屏幕空间反射
- ibatis.net 按实体insert数据,批量insert,同时解决ON DUPLICATE KEY
- osg 小技巧
- 历史的纠缠
- 看图学网络 一 网络的组成
- C#基础知识总结之二
- 装饰模式(Decorator)-山下的石雕厂
- 寒霜引擎(镜之边缘:催化剂)中的屏幕空间反射
- div自动拉伸
- poi解析上传的Excel xlsx 保存到Oracle 趁还没忘记,留下
- lightoj1118 Incredible Molecules
- 偶数求和
- 【计算机视觉菜鸟入门】之各种大牛配置教程
- 杭电校赛(质方数)
- 黑马程序员--MAP集合
- vim编辑器 保存命令
- 带梯度效果的圆形进度View
- weka和matlab完成完整分类实验