MMATRIX - SHIFT Operator on Matrix
Tác giả: hieult
Ngôn ngữ: C++
#include <stdio.h>
//#include <conio.h>
#include <math.h>
long max(long a[],long n)
{
long T=-1000000;
for(long i=1;i<=n;i++)
if(a[i]>T)
T=a[i];
return T;
}
main()
{
long a[8][8],d[8],n;
while(scanf("%ld",&n)>0&&n>0)
{
for(long i=1;i<=n;i++)
for(long j=1;j<=n;j++)
scanf("%ld",&a[i][j]);
long t=0,min=1000000;
while(t<=long(pow(n,n-1)))
{
long m=t;
for(long i=1;i<=n;i++) d[i]=a[n][i];
for(long i=1;i<=n-1;i++)
{
long ti=m%n;
m=m/n;
for(long j=1;j<=ti;j++)
d[j]=d[j]+a[i][n+j-ti];
for(long j=ti+1;j<=n;j++)
d[j]=d[j]+a[i][j-ti];
}
if(max(d,n)<min)
min=max(d,n);
t++;
}
printf("%ld\n",min);
}
//getch();
}