A. Valera and Plates----贪心
来源:互联网 发布:淘宝店铺banner全屏 编辑:程序博客网 时间:2024/05/19 17:50
Valera is a lazy student. He has m clean bowls and k clean plates.
Valera has made an eating plan for the next n days. As Valera is lazy, he will eat exactly one dish per day. At that, in order to eat a dish, he needs exactly one clean plate or bowl. We know that Valera can cook only two types of dishes. He can eat dishes of the first type from bowls and dishes of the second type from either bowls or plates.
When Valera finishes eating, he leaves a dirty plate/bowl behind. His life philosophy doesn't let him eat from dirty kitchenware. So sometimes he needs to wash his plate/bowl before eating. Find the minimum number of times Valera will need to wash a plate/bowl, if he acts optimally.
The first line of the input contains three integers n, m, k (1 ≤ n, m, k ≤ 1000) — the number of the planned days, the number of clean bowls and the number of clean plates.
The second line contains n integers a1, a2, ..., an (1 ≤ ai ≤ 2). If ai equals one, then on day i Valera will eat a first type dish. If aiequals two, then on day i Valera will eat a second type dish.
Print a single integer — the minimum number of times Valera will need to wash a plate/bowl.
3 1 11 2 1
1
4 3 11 1 1 1
1
3 1 22 2 2
0
8 2 21 2 1 2 1 2 1 2
4
In the first sample Valera will wash a bowl only on the third day, so the answer is one.
In the second sample, Valera will have the first type of the dish during all four days, and since there are only three bowls, he will wash a bowl exactly once.
In the third sample, Valera will have the second type of dish for all three days, and as they can be eaten from either a plate or a bowl, he will never need to wash a plate/bowl.
题目链接:http://codeforces.com/contest/369/problem/A
题目的意思是说一个人有m个碗k个盘子,他要吃n顿饭,有两种饭,第一种要用一个碗,第二种可以用一个碗也可以用一个盘子,他每次洗完可以洗一个盘子或一个碗,问他要吃饭n顿饭最少要洗多少次碗。
很简单的思路,贪心,能用盘子的用盘子,用不了盘子用碗,如果没得可用就洗一个。
代码:
#include <cstdio>#include <cstring>#include <iostream>using namespace std;int main(){ int n,m,k,x,ans=0; scanf("%d%d%d",&n,&m,&k); while(n--){ scanf("%d",&x); if(x==1){ if(m) m--; else ans++; } else{ if(k) k--; else if(m) m--; else ans++; } } printf("%d\n",ans); return 0;}
- A. Valera and Plates----贪心
- A. Valera and Plates
- codeforces A. Valera and Plates 题解
- CodeForces 379A Valera and Plates
- codeforce Valera and Plates
- Codeforces Round #216 (Div. 2) A. Valera and Plates
- A. Valera and X
- A. Valera and X
- A. Valera and X
- A - Valera and Fruits
- A. Valera and Antique Items
- code forces 404A Valera and X
- codeforces 404A - Valera and X
- Codeforces A. Valera and X 题解
- CodeForces 441 A. Valera and Antique Items
- CodeForces 252A-Valera and Antique Items
- CodeForces 441A Valera and Antique Items
- CodeForces 441A Valera and Antique Items
- 拓扑排序的原理&&实现
- Java-猴子分桃(多线程)
- 关注民生民情
- Matrix 锻炼实现能力的好题(POJ 3685)
- 实践项目九:抓取慕课网网页的图片到本地
- A. Valera and Plates----贪心
- 2017.08-Osher_LOW DIMENSIONAL MANIFOLD MODEL for IMAGE PROCESSING
- Tools_ModifyFileSuffix
- IO流(操作基本数据类型的流)
- mysql中存储ip地址
- H5的canvas画布使用
- 关注民生民情
- 关注国情民情,从身边做起
- bzoj2818 欧拉函数、莫比乌斯反演