平衡矩阵 来源poj
描述
现在有一个n阶正整数方阵(n<=7),现在可以对矩阵的任意一行进行左移,具体操作为:每次对于某一行a_i1,a_i2,…,a_in进行一次左移,最左边的元素移动到这一行的末尾,其他元素均向左移动一位,即变为a_i2,a_i3,…,a_in,a_i1。对某一行可以执行任意次的左移。
现在我们的目标是:通过对矩阵的每一行进行若干次左移,使得矩阵中每列和的最大值最小。
关于输入
输入包含多组数据。
对于每组数据,第一行为一个正整数n(1<=n<=7),代表矩阵的阶。接下来的n行,每行n个正整数(不超过10000),代表这个矩阵。
输入数据以一个-1为结尾代表输入结束。
关于输出
对于每组数据,输出一行一个正整数,为最小的最大列和。*/
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
int ccmax=0,ccmin=INT_MAX,n,a[10][10]={
0},sum[10]