Advertisement
Guest User

Untitled

a guest
Feb 20th, 2024
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.37 KB | Source Code | 0 0
  1. var
  2.     BMW, n, nn, i, j, M, Val, MaxI : int64;
  3.     x                              : int64;
  4.     k1, k2, x2                     : string;
  5.     a2                             : array[1..1000] of string;
  6.     a, k, kk                       : array[1..1000] of integer;
  7.     b, c, c2, b2                   : array[1..1000] of integer;
  8.  
  9. begin
  10.     ReadLn(BMW);
  11.     ReadLn(n);
  12.     for i := 1 to n do  Read(b[i]);
  13.     for i := 1 to n do  Read(c[i]);
  14.     M   := 0;
  15.     Val := 0;
  16.     for i := 1 to n do  k1    := k1 + '1';
  17.     for i := 1 to n do  kk[i] := 1;
  18.     for i := 1 to n do  k [i] := 0;
  19.     k[n] := 1;
  20.     j    := 0;
  21.     nn   := n;
  22.     x    := 0;
  23.     while (x < n) do begin
  24.         x := 0;
  25.         for i := 1 to n do  if (k[i] = 1) then begin
  26.             M   := M   + b[i];
  27.             Val := Val + c[i];
  28.         end;
  29.         if (M <= BMW) then begin
  30.             Inc(j);
  31.             c2[j] := Val;
  32.             b2[j] := M;
  33.         end;
  34.         M   := 0;
  35.         Val := 0;
  36.         for i := 1 to n do begin
  37.             Str(k[i], x2);
  38.             a2[j] := a2[j] + x2;
  39.         end;
  40.         if (k[n] = 1) then begin
  41.             while k[nn] = 1 do begin
  42.                 k[nn] := 0;
  43.                 Dec(nn);
  44.             end;
  45.             if (k[nn] = 0) then begin
  46.                 k[nn] := 1;
  47.             end else begin
  48.                 k[nn] := 0;
  49.                 Inc(k[nn - 1]);
  50.             end;
  51.         end else begin
  52.             k[n] := 1;
  53.         end;
  54.         for i := 1 to n do  if (k[i] = kk[i]) then Inc(x);
  55.     end;
  56.     MaxI := 0;
  57.     for i := 1 to j do  if (c[i] > MaxI)                then MaxI := i;
  58.     for i := 1 to n do  if (Copy(a2[MaxI], i, 1) = '1') then WriteLn(i);
  59. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement