POJ 2709 Painter

题意: 一个商店里有许多颜料盒,但是每个颜料盒里面没有 grey 这种颜色,而这种颜色可以由任意其他三种颜色配成,每个颜料盒里一开始有 50ml 的各种非 grey 颜色,

          告诉了 每种颜色和grey颜色的需求量,问最少需要多少个颜料盒才能够用。

分析: 贪心。 可以对非 grey的颜色排序,每次找出量最少的三个颜色,在其中每个都 +1 ,然后就可以让 grey 颜色 -1, 这样到 grey 颜色配完之后,找出需求最多的颜色所需要的颜料盒即可。

 

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
    int n,i;
    int a[13];
    int g,res;
    while(scanf("%d",&n),n)
    {
        for(i=0;i<n;i++)
            scanf("%d",&a[i]);
        scanf("%d",&g);
        while(g)
        {
            g--;
            sort(a,a+n);
            a[0]++;
            a[1]++;
            a[2]++;
        }
        res=0;
        for(i=0;i<n;i++)
            if(a[i]>res)
                res=a[i];
        printf("%d\n",res%50==0?res/50:res/50+1);
    }
    return 0;
}

 

posted @ 2012-07-28 13:32  'wind  阅读(169)  评论(0编辑  收藏  举报