zoukankan      html  css  js  c++  java
  • codeforces369A

    Valera and Plates

     CodeForces - 369A 

    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 ai equals two, then on day iValera will eat a second type dish.

    Output

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

    Examples

    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.

    sol:直接按题意暴力模拟,能用盘子优先用盘子,否则用碗

    #include <bits/stdc++.h>
    using namespace std;
    typedef int ll;
    inline ll read()
    {
        ll s=0;
        bool f=0;
        char ch=' ';
        while(!isdigit(ch))
        {
            f|=(ch=='-'); ch=getchar();
        }
        while(isdigit(ch))
        {
            s=(s<<3)+(s<<1)+(ch^48); ch=getchar();
        }
        return (f)?(-s):(s);
    }
    #define R(x) x=read()
    inline void write(ll x)
    {
        if(x<0)
        {
            putchar('-'); x=-x;
        }
        if(x<10)
        {
            putchar(x+'0');    return;
        }
        write(x/10);
        putchar((x%10)+'0');
        return;
    }
    #define W(x) write(x),putchar(' ')
    #define Wl(x) write(x),putchar('
    ')
    int n,m,k;
    int main()
    {
        int i,ans=0;
        R(n); R(m); R(k);
        for(i=1;i<=n;i++)
        {
            int oo=read();
            if(oo==1)
            {
                if(m) m--;
                else ans++;
            }
            else
            {
                if(k) k--;
                else if(m) m--;
                else ans++;
            }
        }
        Wl(ans);
        return 0;
    }
    View Code
  • 相关阅读:
    yjh_study_command
    installed_oracle_can't_use
    Database 2 Day DBA guide_Chapter3
    oracle_great_integration_译文
    oracle_set_autocommit
    Database 2 Day DBA guide_Chapter2
    linux_base_commond_two
    linux_base_commond_one
    Oracle_11gR2_概念_第06章_数据字典和动态性能视图_英文词汇
    angular 自定义select选项,tab切换!!!
  • 原文地址:https://www.cnblogs.com/gaojunonly1/p/10580516.html
Copyright © 2011-2022 走看看