显示原始代码
#include <stdio.h>
#include <iostream>
using namespace std;
int maxsum(int k);
int min(int a, int b) {
if (a > b)
return b;
if (b >= a)
return a;
}
int max(int a, int b) {
if (a > b)
return a;
if (b >= a)
return b;
}
int a[4][4] = { 0 };
int s[4][4] = { 0 };
int xuanzhuan(int k) {
int x = k / 3;
int y = k % 3;
int temp = a[x][y];
a[x][y] = a[x + 1][y];
a[x + 1][y] = a[x + 1][y + 1];
a[x + 1][y + 1] = a[x][y + 1];
a[x][y + 1] = temp;
return 0;
}
int jisuan(int s) {
int x = s / 3;
int y = s % 3;
int k = a[x][y] + a[x + 1][y] + a[x + 1][y + 1] + a[x][y + 1];
return k;
}
int mini(int k) {
int m = 0;
for (int i = 0; i < 9; i++) {
}
return m;
}
int nihao[9][9][9][9][9][9] = { 0 };
int main() {
int a1, a2, a3, a4, a5, a6;
int huiheshu;
int l;
int mm[200];
int cishu;
cin >> cishu;
for (int d = 0; d < cishu; d++) {
cin >> huiheshu;
for (int j = 0; j < 4; j++) {
for (int i = 0; i < 4; i++) {
cin >> a[i][j];
s[i][j] = a[i][j];
}
}
if (huiheshu == 3) {
for (a1 = 0; a1 < 9; a1++) {
for (a2 = 0; a2 < 9; a2++) {
for (a3 = 0; a3 < 9; a3++) {
for (a4 = 0; a4 < 9; a4++) {
for (a5 = 0; a5 < 9; a5++) {
for (a6 = 0; a6 < 9; a6++) {
l = l + jisuan(a1);
xuanzhuan(a1);
l = l + jisuan(a2);
xuanzhuan(a2);
l = l + jisuan(a3);
xuanzhuan(a3);
l = l + jisuan(a4);
xuanzhuan(a4);
l = l + jisuan(a5);
xuanzhuan(a5);
nihao[a1][a2][a3][a4][a5][a6] = jisuan(a6) + l;
l = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = s[i][j];
}
}
}
}
}
}
}
}
if (huiheshu == 3) {
for (a1 = 0; a1 < 9; a1++) {
for (a2 = 0; a2 < 9; a2++) {
for (a3 = 0; a3 < 9; a3++) {
for (a4 = 0; a4 < 9; a4++) {
for (a5 = 0; a5 < 9; a5++) {
for (a6 = 0; a6 < 9; a6++) {
nihao[a1][a2][a3][a4][a5][0] =
min(nihao[a1][a2][a3][a4][a5][0], nihao[a1][a2][a3][a4][a5][a6]);
}
nihao[a1][a2][a3][a4][0][0] =
max(nihao[a1][a2][a3][a4][a5][0], nihao[a1][a2][a3][a4][a5][0]);
}
nihao[a1][a2][a3][0][0][0] =
min(nihao[a1][a2][a3][a4][a5][0], nihao[a1][a2][a3][a4][0][0]);
}
nihao[a1][a2][0][0][0][0] =
max(nihao[a1][a2][a3][a4][a5][0], nihao[a1][a2][a3][0][0][0]);
}
nihao[a1][0][0][0][0][0] = min(nihao[a1][a2][a3][0][0][0], nihao[a1][a2][0][0][0][0]);
}
nihao[0][0][0][0][0][0] = max(nihao[a1][0][0][0][0][0], nihao[0][0][0][0][0][0]);
}
}
mm[d] = nihao[0][0][0][0][0][0];
}
if (huiheshu == 2) {
for (a1 = 0; a1 < 9; a1++) {
for (a2 = 0; a2 < 9; a2++) {
for (a3 = 0; a3 < 9; a3++) {
for (a4 = 0; a4 < 9; a4++) {
l = l + jisuan(a1);
xuanzhuan(a1);
l = l + jisuan(a2);
xuanzhuan(a2);
l = l + jisuan(a3);
xuanzhuan(a3);
nihao[a1][a2][a3][a4][0][0] = jisuan(a4) + l;
l = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = s[i][j];
}
}
}
}
}
}
if (huiheshu == 2) {
for (a1 = 0; a1 < 9; a1++) {
for (a2 = 0; a2 < 9; a2++) {
for (a3 = 0; a3 < 9; a3++) {
for (a4 = 0; a4 < 9; a4++) {
nihao[a1][a2][a3][0][0][0] =
min(nihao[a1][a2][a3][a4][0][0], nihao[a1][a2][a3][0][0][0]);
}
nihao[a1][a2][0][0][0][0] =
max(nihao[a1][a2][a3][a4][a5][0], nihao[a1][a2][a3][0][0][0]);
}
nihao[a1][0][0][0][0][0] = min(nihao[a1][a2][a3][0][0][0], nihao[a1][a2][0][0][0][0]);
}
nihao[0][0][0][0][0][0] = max(nihao[a1][0][0][0][0][0], nihao[0][0][0][0][0][0]);
}
}
mm[d] = nihao[0][0][0][0][0][0];
}
if (huiheshu == 1) {
for (a1 = 0; a1 < 9; a1++) {
for (a2 = 0; a2 < 9; a2++) {
l = l + jisuan(a1);
xuanzhuan(a1);
nihao[a1][a2][0][0][0][0] = jisuan(a2) + l;
l = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = s[i][j];
}
}
}
}
if (huiheshu == 1) {
for (a1 = 0; a1 < 9; a1++) {
for (a2 = 0; a2 < 9; a2++) {
nihao[a1][0][0][0][0][0] = min(nihao[a1][0][0][0][0][0], nihao[a1][a2][0][0][0][0]);
}
nihao[0][0][0][0][0][0] = max(nihao[a1][0][0][0][0][0], nihao[0][0][0][0][0][0]);
}
}
mm[d] = nihao[0][0][0][0][0][0];
}
}
for (int i = 0; i < cishu; i++) {
cout << mm[i] << endl;
}
return 0;
}