/* File: 167.cpp Author: ACboy Date: 2010-3-25 Result: 1A Description: UVa 167 - The Sultan's Successors */ #include <iostream> using namespace std; int data[10][10]; int viscolumn[10]; int visT[2][20]; int ans; int temp[10][2]; int c = 0; void dfs(int pos) { if (pos == 8) { int sum = 0; for (int j = 0; j < 8; j++) { sum += data[temp[j][0]][temp[j][1]]; } if (sum > ans) ans = sum; c++; } else for (int i = 0; i < 8; i++) { if (!viscolumn[i] && !visT[0][pos - i + 8] && !visT[1][pos + i]) { viscolumn[i] = 1; visT[0][pos - i + 8] = visT[1][pos + i] = 1; temp[pos][0] = pos; temp[pos][1] = i; dfs(pos + 1); viscolumn[i] = 0; visT[0][pos - i + 8] = visT[1][pos + i] = 0; } } } int main() { #ifndef ONLINE_JUDGE freopen("167.txt", "r", stdin); #endif int n; cin >> n; while (n--) { int i,j; for (i = 0; i < 8; i++) { for (j = 0; j < 8; j++) { cin >> data[i][j]; } } ans = -1; memset(visT, 0, sizeof(visT)); memset(viscolumn, 0, sizeof(viscolumn)); dfs(0); printf("%5d/n", ans); } return 0; }