1 条题解

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

    Pascal :

    var
     n,m,i,k,i1,i2,i3,i4:longint;
     a,s:array[0..355] of longint;
     f:array[-1..41,-1..41,-1..41,-1..41] of longint;
    function max(a,b,c,d,e:longint):longint;
     begin
      max:=a;
      if b>max then max:=b;
      if c>max then max:=c;
      if d>max then max:=d;
      if e>max then max:=e;
     end;
    begin
     readln(n,m);
      for i:=1 to n do
       read(a[i]);
      for i:=1 to m do
       begin
        read(k);
        inc(s[k]);
       end;
    for i1:=0 to s[1] do
     for i2:=0 to s[2] do
      for i3:=0 to s[3] do
       for i4:=0 to s[4] do
        f[i1,i2,i3,i4]:=max(f[i1,i2,i3,i4],
        f[i1-1,i2,i3,i4],
        f[i1,i2-1,i3,i4],
        f[i1,i2,i3-1,i4],
        f[i1,i2,i3,i4-1])+a[i1+2*i2+3*i3+4*i4+1];
        writeln(f[s[1],s[2],s[3],s[4]]);
    end.
    
    • 1

    信息

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