#include <stdio.h>
#include <iostream>
using namespace std;
 
typedef struct node
{
    int pos[20];
}node;
 
int N;
int visited[20];
int Max;
node player[20];
 
void permutation(int sum, int cnt)
{
    if(cnt == 12)
    {
        if(sum > Max)
        {
            Max = sum;
        }
        
        return;
    }
    
    for(int i = 1; i <= 11; i++)
    {
        if(visited[i] == 0 && player[cnt].pos[i] != 0)
        {
            visited[i] = 1;
            permutation(sum + player[cnt].pos[i], cnt+1);
            visited[i] = 0;    
        }
    }
}
 
int main(void)
{
//    freopen("B3980_input.txt", "r", stdin);
    
    scanf("%d"&N);
    
    for(int T = 1; T <= N; T++)
    {
        for(int i = 1; i <= 11; i++)
        {
            for(int j = 1; j <= 11; j++)
            {
                cin >> player[i].pos[j];
            }
        }
        
        Max = 0;
        for(int i = 0; i < 20; i++)
        {
            visited[i] = 0;
        }
        
        permutation(01);
        
        printf("%d\n", Max);
    }
    
    return 0;
}
cs

+ Recent posts