Codeforces Round #216 (Div. 2) A. Valera and Plates

A. Valera and Plates
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

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.

Input

The first line of the input contains three integers nmk (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.

Output

Print a single integer — the minimum number of times Valera will need to wash a plate/bowl.

Sample test(s)
input
3 1 1
1 2 1
output
1
input
4 3 1
1 1 1 1
output
1
input
3 1 2
2 2 2
output
0
input
8 2 2
1 2 1 2 1 2 1 2
output
4
Note

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.


纯属刷的玩的

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{

    int i,j,k;
    int n,m;
    int num[1010];
    while(scanf("%d%d%d",&n,&m,&k)!=EOF)
    {
        for(i=1;i<=n;i++)
        {
            scanf("%d",&num[i]);
        }
        int sum=0;
        for(i=1;i<=n;i++)
        {

            if(num[i]==1)
            {
                if(m)
                {
                    m--;
                   // printf("aa %d\n",n);
                    continue;
                }
                else
                {
                    sum++;
                    continue;
                }

            }
            else
            if(num[i]==2)
            {
                if(k)
                {
                    k--;
                    continue;
                }
                else
                if(m)
                {
                    m--;
                    continue;
                }
                else
                {
                    sum++;
                    continue;
                }
            }










        }

        printf("%d\n",sum);






    }
    return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值