记录编号 |
79450 |
评测结果 |
AAAAAAAAAAA |
题目名称 |
[USACO Feb08] 麻烦的聚餐 |
最终得分 |
100 |
用户昵称 |
赵赵赵 |
是否通过 |
通过 |
代码语言 |
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.