Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var
- BMW, n, nn, i, j, M, Val, MaxI : int64;
- x : int64;
- k1, k2, x2 : string;
- a2 : array[1..1000] of string;
- a, k, kk : array[1..1000] of integer;
- b, c, c2, b2 : array[1..1000] of integer;
- begin
- ReadLn(BMW);
- ReadLn(n);
- for i := 1 to n do Read(b[i]);
- for i := 1 to n do Read(c[i]);
- M := 0;
- Val := 0;
- for i := 1 to n do k1 := k1 + '1';
- for i := 1 to n do kk[i] := 1;
- for i := 1 to n do k [i] := 0;
- k[n] := 1;
- j := 0;
- nn := n;
- x := 0;
- while (x < n) do begin
- x := 0;
- for i := 1 to n do if (k[i] = 1) then begin
- M := M + b[i];
- Val := Val + c[i];
- end;
- if (M <= BMW) then begin
- Inc(j);
- c2[j] := Val;
- b2[j] := M;
- end;
- M := 0;
- Val := 0;
- for i := 1 to n do begin
- Str(k[i], x2);
- a2[j] := a2[j] + x2;
- end;
- if (k[n] = 1) then begin
- while k[nn] = 1 do begin
- k[nn] := 0;
- Dec(nn);
- end;
- if (k[nn] = 0) then begin
- k[nn] := 1;
- end else begin
- k[nn] := 0;
- Inc(k[nn - 1]);
- end;
- end else begin
- k[n] := 1;
- end;
- for i := 1 to n do if (k[i] = kk[i]) then Inc(x);
- end;
- MaxI := 0;
- for i := 1 to j do if (c[i] > MaxI) then MaxI := i;
- for i := 1 to n do if (Copy(a2[MaxI], i, 1) = '1') then WriteLn(i);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement