求三個回收桶回收三種顏色的瓶子,該如何分配顏色所需的瓶子移動總數最少

[心得]

1.只需考慮六種情況,依題目要求由字典順序去令排列的情況,暴力法解題

 

#include <stdio.h>

int main()
{
    int B1,G1,C1,B2,G2,C2,B3,G3,C3,W[6],i,j,min;
   
    while(scanf("%d %d %d %d %d %d %d %d %d",&B1,&G1,&C1,&B2,&G2,&C2,&B3,&G3,&C3)!=EOF)
    {
        /*BCG*/ W[0]=B2+B3+C1+C3+G1+G2;
        /*BGC*/ W[1]=B2+B3+G1+G3+C1+C2;
        /*CBG*/ W[2]=C2+C3+B1+B3+G1+G2;
        /*CGB*/ W[3]=C2+C3+G1+G3+B1+B2;
        /*GBC*/ W[4]=G2+G3+B1+B3+C1+C2;
        /*GCB*/ W[5]=G2+G3+C1+C3+B1+B2;
       
        min=W[0]; j=0;
       
        for(i=1;i<6;i++)
            if(W[i]<min)
            {
                min=W[i];
                j=i;
            }
        switch(j)
        {
            case 0: {printf("BCG %d\n",min); break;}
            case 1: {printf("BGC %d\n",min); break;}
            case 2: {printf("CBG %d\n",min); break;}
            case 3: {printf("CGB %d\n",min); break;}
            case 4: {printf("GBC %d\n",min); break;}
            case 5: {printf("GCB %d\n",min); break;}
        }
    }
   
    return 0;
}

創作者介紹
創作者 RingsACM 的頭像
RingsACM

Ring's ACM

RingsACM 發表在 痞客邦 留言(0) 人氣()