比赛 |
20121023 |
评测结果 |
AAWAAAWATT |
题目名称 |
奶牛晒衣服 |
最终得分 |
60 |
用户昵称 |
FrCsKOH |
运行时间 |
2.871 s |
代码语言 |
Pascal |
内存使用 |
3.98 MiB |
提交时间 |
2012-10-23 21:16:38 |
显示代码纯文本
program C1210;
const Be=500000;
var qA,qB:array[1..Be] of longint;
n,A,B,i,Ha,Ea,Hb,Eb,temp,t:longint;
procedure down(i,m:longint);
begin
while i<<1<=m do begin
i:=i<<1;
if (i<m) and (qA[i]>qA[i+1]) then inc(i);
if qA[i]<qA[i>>1] then begin
temp:=qA[i];
qA[i]:=qA[i>>1];
qA[i>>1]:=temp;
end else break;
end;
end;
procedure HeapSort;
var i:longint;
begin
for i:=n>>1 downto 1 do down(i,n);
for i:=n downto 2 do begin
temp:=qA[i];
qA[i]:=qA[1];
qA[1]:=temp;
down(1,i-1);
end;
end;
begin
assign(input,'dry.in');
reset(input);
assign(output,'dry.out');
rewrite(output);
readln(n,A,B);
for i:=1 to n do read(qA[i]);
readln;
HeapSort;
fillchar(qB,sizeof(qB),0);
Ha:=1;
Ea:=n;
Hb:=1;
Eb:=0;
t:=0;
while not((Ha>Ea) and (Hb>Eb)) do begin
inc(t);
for i:=Ha to Ea do dec(qA[i],A);
for i:=Hb to Eb do dec(qB[i],A);
dec(qA[Ha],B);
while (Ha<=Ea) and (qA[Ea]<=0) do dec(Ea);
while (Hb<=Eb) and (qB[Eb]<=0) do dec(Eb);
if Ha<=Ea then
if qA[Ha+1]>qA[Ha] then begin
inc(Eb);
qB[Eb]:=qA[Ha];
inc(Ha);
end;
end;
writeln(t);
close(input);
close(output);
end.