记录编号 79450 评测结果 AAAAAAAAAAA
题目名称 [USACO Feb08] 麻烦的聚餐 最终得分 100
用户昵称 Gravatar赵赵赵 是否通过 通过
代码语言 Pascal 运行时间 0.012 s
提交时间 2013-11-05 18:58:31 内存使用 0.51 MiB
显示代码纯文本
var
 f,g:array[0..30000,1..3]of integer;
 x,i,j,k,n,ans:integer;
function min(a,b:integer):integer;
begin
 if a<=b then exit(a) else exit(b);end;
begin
 assign(input,'egroup.in');reset(input);
 assign(output,'egroup.out');rewrite(output);
 readln(n);
 fillchar(f,sizeof(f),$7F);fillchar(g,sizeof(g),$7F);
 for i:=1 to 3 do
 begin
  f[0,i]:=0;g[0,i]:=0;
 end;
 for i:=1 to n do
 begin
  readln(x);
  for j:=1 to 3 do
                  for k:=1 to j do
                  begin
                   if j=x then f[i,j]:=min(f[i-1,k],f[i,j])
                          else f[i,j]:=min(f[i-1,k]+1,f[i,j]);
                 end;
  for j:=1 to 3 do
                  for k:=j to 3 do
                  begin
                  if  j=x then g[i,j]:=min(g[i-1,k],g[i,j])
                          else g[i,j]:=min(g[i-1,k]+1,g[i,j]);
                 end;
 end;
 ans:=maxint;
 for i:=1 to 3 do
 begin
  if f[n,i]<ans then ans:=f[n,i];
  if g[n,i]<ans then ans:=g[n,i];
 end;
 writeln(ans);
 close(input);close(output);
end.