已知公路总长L米,一共有K个赛道,你的赛车总是和公路上其他的普通的车走相反的方向,并且所有的车每秒沿赛道行驶1m
问题是:跑到终点最少撞多少次车?

 

program rq94;
var f:array[-10..100,-10..100]of longint;
a:
array[0..100,0..100]of longint;
ans,m,n:longint;
procedure init;
var i,j:longint;c:char;
begin
assign(input,
'input.txt');reset(input);
readln(m,n);
for i:=m downto 1 do
begin
for j:=1 to n do
begin
read(c);
if c='0' then a[i,j]:=0 else a[i,j]:=1;
end;
readln;
end;
end;
function min(a,b:longint):longint;
begin
if a>b then exit(b) else exit(a);
end;
procedure work;
var i,j,k:longint;
begin
for i:=1 to m do
for j:=1 to n do
begin
f[i,j]:
=maxlongint;
f[i,j]:
=min(f[i,j],f[i-2,j]+a[i-1,j]);
if j>1 then f[i,j]:=min(f[i,j],f[i-2,j-1]);
if j+1<=n then f[i,j]:=min(f[i,j],f[i-2,j+1]);
f[i,j]:
=f[i,j]+a[i,j];
end;
ans:
=maxlongint;
for i:=1 to n do
ans:
=min(ans,f[m,i]);
writeln(ans);
end;
begin
init;
work;
end.