1 solutions

  • 0
    @ 2025-11-5 17:27:53

    Pascal :

    var
       n,m,i,j,k,l,x:longint;
       a,b:array[0..1000] of longint;
       f:Array[-1..40,-1..40,-1..40,-1..40] of longint;
     function max(a,b,c,d:longint):longint;
     begin
       if a<b then a:=b;
       if a<c then a:=c;
       if a<d then a:=d;
       exit(a);
     end;
     begin
       readln(n,m);
       for i:=1 to n do
         read(a[i]);
       readln;
       for i:=1 to m do
         begin
         read(x);
         inc(b[x]);
         end;
       for i:=0 to b[1] do
         for j:=0 to b[2] do
           for k:=0 to b[3] do
             for l:=0 to b[4] do
               f[i,j,k,l]:=max(f[i-1,j,k,l],f[i,j-1,k,l],f[i,j,k-1,l],f[i,j,k,l-1])+a[i+j*2+k*3+l*4+1];
       writeln(f[b[1],b[2],b[3],b[4]]);
     end.
    
    • 1

    Information

    ID
    18456
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By