【
样例数据说明】
FJ选择改第1头和最后1头奶牛卡片上的编号。
压缩之后枚举就是了。。。没啥好说的,上代码:
var
a,b,c:array[0..40000]of longint;
n,k,s,min:longint;
procedure init;
var i,j:longint;
begin
readln(n);
for i:=1 to n do
begin
read(j);
if j<>a[k] then begin inc(k); a[k]:=j; inc(b[k]); end
else inc(b[k]);
if j=1 then inc(min)
else inc(s);
end;
if s<min then min:=s;
end;
procedure main;
var i,j:longint;
begin
for i:=k downto 1 do
begin
s:=0;
for j:=i to k do
begin
if a[j]=1 then inc(s,b[j]);
if s>=min then break;
end;
if s>=min then break;
for j:=1 to i-1 do
begin
if a[j]=2 then inc(s,b[j]);
if s>=min then break;
end;
if s<=min then min:=s;
end;
end;
begin
assign(input,'diningb.in'); reset(input);
assign(output,'diningb.out'); rewrite(output);
init;
main;
writeln(min);
end.