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