翻譯有誤 是2^31 不是231種
```cpp
/*想法*/
/*輸入拆解*/ //getline 切割
/*資料處理型態*/ //struct? 有不同桶 + 不同顏色的瓶子 //寫成二維矩陣比較好遍歷
/*怎麼決定哪個桶放什麼顏色的*/
#include<iostream>
#include<bits/stdc++.h>
#include <climits> // INT_MAX
using namespace std;
#define Max_Movetime INT_MAX
// struct bucket{
// int brown;//
// int green;//
// int clear;//
// };
int main(){
string s;
// bucket a,b,c;
int bucket[3][3];//"0=B""1=G""2=C"
string set[6] = {"BCG","BGC","CBG","CGB","GBC","GCB"}; //Bruce Force
while(getline(cin,s)){
/*輸入拆解*/ //getline 切割
stringstream ss(s);
ss >> bucket[0][0] >> bucket[0][1] >> bucket[0][2] //同桶子
>> bucket[1][0] >> bucket[1][1] >> bucket[1][2]
>> bucket[2][0] >> bucket[2][1] >> bucket[2][2];
//B //G //C
int bs = bucket[0][0] + bucket[1][0] + bucket[2][0];//brown sum
int gs = bucket[0][1] + bucket[1][1] + bucket[2][1];//green sum
int cs = bucket[0][2] + bucket[1][2] + bucket[2][2];//clear sum
/*比較*/
int smallest_set_index;
int smallest_movetime = Max_Movetime;//232
for(int k=0 ; k<6 ; k++){
int movetime = 0;
for(int i=0 ; i<3 ;i++){
if(set[k][i]=='B'){
movetime += (bs - bucket[i][0]);
}
else if(set[k][i]=='G'){
movetime += (gs - bucket[i][1]);
}
else if(set[k][i]=='C'){
movetime += (cs - bucket[i][2]);
}
}
if(movetime<smallest_movetime){
smallest_movetime=movetime;
smallest_set_index = k;
}
}
if(smallest_movetime==-1){
cout << "movetime error";
return -1;
}
/*輸出*/
cout << set[smallest_set_index] << " " << smallest_movetime << endl;
}
return 0;
}
```