rockers.pas

来自「Magio牛的usaco源代码」· PAS 代码 · 共 64 行

PAS
64
字号
{
ID:maigoak1
PROG:rockers
}

program rockers;
const
  max=20;
var
  fin,fout:text;
  len:array[1..max]of byte;
  have:array[0..max]of byte;
  n,t,m,p,rec,best:byte;
procedure out(x:byte);
  begin
    assign(fout,'rockers.out');
    rewrite(fout);
    writeln(fout,x);
    close(fout);
    halt;
  end;
procedure search(l:byte);
  begin
    if l=n+1 then exit;

    search(l+1);
    if len[l]>t then exit;

    if have[p]+len[l]>t then
      if p=m then
        exit
      else begin
        inc(p);
        have[p]:=len[l];
      end
    else
      inc(have[p],len[l]);
    inc(rec);
    if rec=n then out(n);
    if rec>best then best:=rec;
    search(l+1);
    dec(rec);
    if have[p]=len[l] then
      dec(p)
    else
      dec(have[p],len[l]);
  end;
begin
  assign(fin,'rockers.in');
  reset(fin);
  readln(fin,n,t,m);
  for p:=1 to n do
    read(fin,len[p]);
  close(fin);

  best:=0;
  p:=0;
  have[0]:=t;
  rec:=0;
  search(1);

  out(best);
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?