比赛 20121023 评测结果 AAAAAAAATT
题目名称 奶牛晒衣服 最终得分 80
用户昵称 Rotide 运行时间 3.245 s
代码语言 Pascal 内存使用 2.07 MiB
提交时间 2012-10-23 20:39:05
显示代码纯文本
var
    wet: array[1..500000] of longint;
    n, a, b, i, ans: longint;

procedure adj(head, tail: longint);
var
    i, j, x: longint;
begin
    i:= head; j:= i shl 1; x:= wet[i];
    while j <= tail do
    begin
        if (j < tail) and (wet[j] < wet[j + 1]) then
            inc(j);
        if x < wet[j] then
        begin
            wet[i]:= wet[j]; i:= j; j:= i shl 1;
        end else j:= tail + 1;
    end;
    wet[i]:= x;
end;

begin
    assign(input, 'dry.in'); reset(input);
    assign(output, 'dry.out'); rewrite(output);

    read(n, a, b);
    for i:=1 to n do read(wet[i]);
    for i:= n div 2 downto 1 do adj(i, n);
    ans:= 0;
    while wet[1] > 0 do
    begin
        dec(wet[1], b);
        for i:=1 to n do dec(wet[i], a);
        adj(1, n); inc(ans);
    end;
    write(ans);

    close(input); close(output);
end.