题意:输入一共9个数据,题中说明输入从第一个箱子开始分别是第一个箱子的G B C颜色。简单的枚举就能ac。
#include<stdio.h>
#include<string.h>
#include <iostream>
using namespace std;
string str[6]={"BCG","BGC","CBG","CGB","GBC","GCB"};
long n[3][3],sum[6];
int main()
{
long i,min,p;
while(scanf("%ld%ld%ld%ld%ld%ld%ld%ld%ld",&n[0][0],&n[0][1],&n[0][2],&n[1][0],&n[1][1],&n[1][2],&n[2][0],&n[2][1],&n[2][2])!=EOF)
{
sum[0] = n[1][0] + n[2][0] + n[0][2] + n[2][2] + n[0][1] + n[1][1];
sum[1] = n[1][0] + n[2][0] + n[0][1] + n[2][1] + n[0][2] + n[1][2];
sum[2] = n[1][2] + n[2][2] + n[0][0] + n[2][0] + n[0][1] + n[1][1];
sum[3] = n[1][2] + n[2][2] + n[0][1] + n[2][1] + n[0][0] + n[1][0];
sum[4] = n[1][1] + n[2][1] + n[0][0] + n[2][0] + n[0][2] + n[1][2];
sum[5] = n[1][1] + n[2][1] + n[0][2] + n[2][2] + n[0][0] + n[1][0];
min=sum[0];
p=0;
for(i=1;i<6;i++)
if(sum[i]<min)
{
min=sum[i];
p=i;
}
printf("%s %ld\n",str[p].c_str(),sum[p]);
}
return 0;
}