HAF1 - Đua Xe

Tác giả: hieult

Ngôn ngữ: C++

#include <stdio.h>
//#include <conio.h>
long min(long a,long b)
  {
  if(a>b) return b;
  else return a;
  }
main()
{
long m,n,a[1001][1001],f[1001][1001],KQ=1000001;
scanf("%ld %ld",&n,&m);
for(long i=1;i<=m;i++)
  for(long j=1;j<=n;j++)
    scanf("%ld",&a[i][j]);
for(long i=1;i<=n;i++)
  f[1][i]=a[1][i];
for(long i=2;i<=m;i++)
  {
  f[i][1]=f[i-1][1]+a[i][1]; 
  for(long j=2;j<=n;j++)
    f[i][j]=min(f[i][j-1],f[i-1][j])+a[i][j];
  for(long j=n-1;j>=1;j--)
    f[i][j]=min(f[i][j+1]+a[i][j],f[i][j]); 
  }    
for(long i=1;i<=n;i++)
  if(KQ>f[m][i])
    KQ=f[m][i];
printf("%ld",KQ);
//getch();
}              

Download