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();
}  
      

Download