POJ2709 Painter(贪心)

http://poj.org/problem?id=2709

 一套涂料有3~12种颜色,每种颜色50ml。Emily上课需要n种颜色的涂料,第i种颜色需要color[i]ml,此外,Emily还需要grayml的灰色涂料,每ml灰色的涂料需要3种不同颜色的其他涂料各1ml融合而成。emily上课,至少需要买几套涂料。

#include<iostream>

using namespace std;

int main()

{

    int T,i,j,n,a[15],Max;

    while(1)

    {

        cin>>T;

        if(T==0)

            break;

        Max=0;

        int t=0;

        for(i=1; i<=T; i++)

        {

            cin>>a[i];

            if(a[i]>Max)

                Max=a[i];

        }    

        cin>>n;

        if(Max%50!=0)

            t=Max/50+1;

        else

            t=Max/50;

        for(i=1; i<=T; i++)

            a[i]=t*50-a[i];

        int sum=0;

        while(sum<n)

        {

            for(i=2; i<=T; i++)

            {

                a[0]=a[i];

                j=i-1;

                while(a[j]<a[0])

                {

                    a[j+1]=a[j];

                    j--;

                }

                a[j+1]=a[0];

            }

            if(a[3]==0)

            {

                t++;

                for(i=1; i<=T; i++)

                    a[i]+=50;

            }

            sum++;

            a[1]--;a[2]--;a[3]--;

        }

        cout<<t<<endl;

    }

    return 0;

}

 

你可能感兴趣的:(paint)