{ NOTE: it is recommended to use this even if you don't understand the following code. }
{ constraints }
const
MAXD = 1000;
MAXY = 1000000;
{ input data }
var
C, D, Y, i : longint;
// Warning! M and P are 1-based
M, P : array[1..MAXD] of longint;
cumulative : array[1..MAXD] of longint;
DP : array[0..MAXY] of longint;
j, k, u : longint;
useful : array[0..MAXD] of longint;
begin
{
uncomment the following lines if you want to read/write from files
assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);
}
readln(C, D, Y);
// Warning! M and P are 1-based
for i:=1 to D do
read(M[i]);
readln();
for i:=1 to D do
read(P[i]);
readln();
cumulative[1] := M[1];
for i:=2 to D do
cumulative[i] := cumulative[i-1] + M[i];
for i:=1 to D do
begin
cumulative[i] := cumulative[i] + C;
cumulative[i] := cumulative[i] - P[i];
end;
DP[0] := 0;
for i:= 1 to Y do
DP[i] := 2000000000;
u := 0;
for i:= 0 to D do
begin
for j:=1 to D do
begin
if (i+j <= Y) then
begin
if (DP[i+j] >= DP[i] + cumulative[j]) then
DP[i+j] := DP[i] + cumulative[j];
end;
end;
if ((i <= Y) and (DP[i] = cumulative[i])) then
begin
useful[u] := i;
u := u+1;
end;
end;
for i:= D to Y do
begin
for k:=0 to u-1 do
begin
j := useful[k];
if (i+j <= Y) then
begin
if (DP[i+j] >= DP[i] + cumulative[j]) then
DP[i+j] := DP[i] + cumulative[j];
end;
end;
end;
writeln(DP[Y]); { print result }
end.
eyBOT1RFOiBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhpcyBldmVuIGlmIHlvdSBkb24ndCB1bmRlcnN0YW5kIHRoZSBmb2xsb3dpbmcgY29kZS4gfQoKeyBjb25zdHJhaW50cyB9CmNvbnN0CiAgICBNQVhEID0gMTAwMDsKICAgIE1BWFkgPSAxMDAwMDAwOwoKeyBpbnB1dCBkYXRhIH0KdmFyCiAgICBDLCBELCBZLCBpICA6IGxvbmdpbnQ7CiAgICAvLyBXYXJuaW5nISBNIGFuZCBQIGFyZSAxLWJhc2VkCiAgICBNLCBQICAgICAgICA6IGFycmF5WzEuLk1BWERdIG9mIGxvbmdpbnQ7CiAgICBjdW11bGF0aXZlICA6IGFycmF5WzEuLk1BWERdIG9mIGxvbmdpbnQ7CiAgICBEUCA6IGFycmF5WzAuLk1BWFldIG9mIGxvbmdpbnQ7CiAgICBqLCBrLCB1IDogbG9uZ2ludDsKICAgIHVzZWZ1bCA6IGFycmF5WzAuLk1BWERdIG9mIGxvbmdpbnQ7CgpiZWdpbgp7CiAgICB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lcyBpZiB5b3Ugd2FudCB0byByZWFkL3dyaXRlIGZyb20gZmlsZXMKICAgIGFzc2lnbihpbnB1dCwgICdpbnB1dC50eHQnKTsgIHJlc2V0KGlucHV0KTsKICAgIGFzc2lnbihvdXRwdXQsICdvdXRwdXQudHh0Jyk7IHJld3JpdGUob3V0cHV0KTsKfQoKICAgIHJlYWRsbihDLCBELCBZKTsKICAgIC8vIFdhcm5pbmchIE0gYW5kIFAgYXJlIDEtYmFzZWQKICAgIGZvciBpOj0xIHRvIEQgZG8KICAgICAgICByZWFkKE1baV0pOwogICAgcmVhZGxuKCk7CiAgICBmb3IgaTo9MSB0byBEIGRvCiAgICAgICAgcmVhZChQW2ldKTsKICAgIHJlYWRsbigpOwoKICAgIGN1bXVsYXRpdmVbMV0gOj0gTVsxXTsKICAgIGZvciBpOj0yIHRvIEQgZG8KICAgICAgICBjdW11bGF0aXZlW2ldIDo9IGN1bXVsYXRpdmVbaS0xXSArIE1baV07CgogICAgZm9yIGk6PTEgdG8gRCBkbwogICAgYmVnaW4KICAgICAgICBjdW11bGF0aXZlW2ldIDo9IGN1bXVsYXRpdmVbaV0gKyBDOwogICAgICAgIGN1bXVsYXRpdmVbaV0gOj0gY3VtdWxhdGl2ZVtpXSAtIFBbaV07CiAgICBlbmQ7CgogICAgRFBbMF0gOj0gMDsKICAgIGZvciBpOj0gMSB0byBZIGRvCiAgICAgICAgRFBbaV0gOj0gMjAwMDAwMDAwMDsKCiAgICB1IDo9IDA7CiAgICBmb3IgaTo9IDAgdG8gRCBkbwogICAgYmVnaW4KICAgICAgICBmb3Igajo9MSB0byBEIGRvCiAgICAgICAgYmVnaW4KICAgICAgICAgICAgaWYgKGkraiA8PSBZKSB0aGVuCiAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICBpZiAoRFBbaStqXSA+PSBEUFtpXSArIGN1bXVsYXRpdmVbal0pIHRoZW4KICAgICAgICAgICAgICAgICAgICBEUFtpK2pdIDo9IERQW2ldICsgY3VtdWxhdGl2ZVtqXTsKICAgICAgICAgICAgZW5kOwogICAgICAgIGVuZDsKICAgICAgICBpZiAoKGkgPD0gWSkgYW5kIChEUFtpXSA9IGN1bXVsYXRpdmVbaV0pKSB0aGVuCiAgICAgICAgYmVnaW4KICAgICAgICAgICAgdXNlZnVsW3VdIDo9IGk7CiAgICAgICAgICAgIHUgOj0gdSsxOwogICAgICAgIGVuZDsKICAgIGVuZDsKCiAgICBmb3IgaTo9IEQgdG8gWSBkbwogICAgYmVnaW4KICAgICAgICBmb3Igazo9MCB0byB1LTEgZG8KICAgICAgICBiZWdpbgogICAgICAgICAgICBqIDo9IHVzZWZ1bFtrXTsKICAgICAgICAgICAgaWYgKGkraiA8PSBZKSB0aGVuCiAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICBpZiAoRFBbaStqXSA+PSBEUFtpXSArIGN1bXVsYXRpdmVbal0pIHRoZW4KICAgICAgICAgICAgICAgICAgICBEUFtpK2pdIDo9IERQW2ldICsgY3VtdWxhdGl2ZVtqXTsKICAgICAgICAgICAgZW5kOwogICAgICAgIGVuZDsKICAgIGVuZDsKCiAgICB3cml0ZWxuKERQW1ldKTsgeyBwcmludCByZXN1bHQgfQplbmQuCg==