题意:给四种方块,每种方块都可以顺时针和逆时针旋转。
A把很多这四种方块用一根木棍串起来,形成一个图形,求至少需要旋转多少次能达成一个角只有一种颜色。

//author: CHC
//First Edit Time: 2014-07-18 14:53
//Last Edit Time: 2014-07-18 14:53
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <set>
#include <algorithm>
using namespace std;
int mapp[5][5];
int getval(int x,int y){
int cnt=0;
for(int i=1;i<=2;i++){
for(int j=1;j<=2;j++){
cnt+=min(abs(mapp[i][j]-mapp[x][y]),4-abs(mapp[i][j]-mapp[x][y]));
}
}
return cnt;
}
int main()
{
while(1){
int flag=0;
for(int i=1;i<=4&&flag!=EOF;i++)
for(int j=1;j<=4&&flag!=EOF;j++)
flag=scanf("%d",&mapp[i][j]);
if(flag==EOF)break;
int mm=1000;
for(int i=1;i<=2;i++){
for(int j=1;j<=2;j++){
int vv=getval(i,j);
if(mm>vv)mm=vv;
}
}
printf("%d\n",mm);
}
return 0;
}