题目链接: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; }