QBMAX - Đường đi có tổng lớn nhất

Tác giả: hieult

Ngôn ngữ: C++

#include <stdio.h>
//#include <conio.h>
main()
{
int n,m,a[102][102],b[102][102],max,max1=-10000;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
  for(int j=1;j<=m;j++)
    scanf("%d",&a[i][j]);
for(int j=1;j<=m;j++)
  { b[0][j]=-10000; b[n+1][j]=-10000; }
for(int i=1;i<=n;i++)
  b[i][1]=a[i][1];
for(int j=2;j<=m;j++)
  for(int i=1;i<=n;i++)
    {
    if(b[i-1][j-1]>b[i][j-1])
       max=b[i-1][j-1];
    else max=b[i][j-1];
    if(max<b[i+1][j-1])
      max=b[i+1][j-1];
    b[i][j]=max+a[i][j];
    }
for(int i=1;i<=n;i++)
  if(b[i][m]>max1)
    max1=b[i][m];
printf("%d",max1);
//getch();
}

Download