1 条题解

  • 0
    @ 2025-9-10 9:15:12

    Pascal :

    program rocker;
    var n,t,m,max,num:longint;
        len:array[1..100] of longint;
        use:array[1..100] of boolean;
    procedure sr;
    var i:longint;
    begin
    //assign(input,'rocker.in');
    //assign(output,'rocker.out');
    //reset(input);
    //rewrite(output);
    readln(n,t,m);
    for i:=1 to n do
     read(len[i]);
    readln;
    end;
    
    procedure find(k,p,q:longint);
    var  i:longint;
    begin
    if (k=m+1) or ((k=m) and (p=0)) then begin
     if num>max then max:=num;
     exit;
     end;
    
    for i:=q to n do
     if (not use[i]) and (p>=len[i]) then begin
      use[i]:=true;
      inc(num);
      find(k,p-len[i],q+1);
      use[i]:=false;
      dec(num);
      end;
    find(k+1,t,1);
    end;
    
    
    begin
    sr;
    fillchar(use,sizeof(use),false);
    find(1,t,1);
    writeln(max);
    //close(input);
    //close(output);
    end.
    
    
    • 1

    信息

    ID
    4490
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者