fork download
  1. Program machine;
  2. Uses Math;
  3. { constraints }
  4. const
  5. MAXD = 2000;
  6.  
  7. { input data }
  8. var
  9. C, D, Y, i, j,acquisti,costo, costominimo, temporestante : longint;
  10. // Warning! M and P are 1-based
  11. M, P : array[0..MAXD] of longint;
  12. bilancio : array[0..MAXD] of longint;
  13.  
  14. begin
  15.  
  16. (*assign(input, 'input.txt'); reset(input);
  17.   assign(output, 'output.txt'); rewrite(output);*)
  18.  
  19.  
  20. readln(C, D, Y);
  21. // Warning! M and P are 1-based
  22. M[0]:=0; P[0]:=0;
  23. for i:=1 to D do
  24. read(M[i]);
  25. readln();
  26. for i:=1 to D do
  27. read(P[i]);
  28. readln();
  29.  
  30. { insert your code here }
  31. bilancio[0]:=0; costo:=C;
  32. for i:=1 to D do
  33. begin
  34. costo:= costo+P[i-1]+M[i]-P[i];
  35. costominimo:= costo;
  36. for j:=1 to (i div 2) do costominimo:=min(costominimo, bilancio[j]+bilancio[i-j]);
  37. bilancio[i]:=costominimo;
  38. end;
  39. for i:=D+1 to 2*D do
  40. begin
  41. costominimo:=bilancio[1]+bilancio[i-1];
  42. for j:=2 to (i div 2) do costominimo:=min(costominimo, bilancio[j]+bilancio[i-j]);
  43. bilancio[i]:=costominimo;
  44. end;
  45. costominimo:=bilancio[1]* Y;
  46. for i:=2 to 2*D do
  47. begin
  48. acquisti:=Y div i;
  49. temporestante:=Y mod i;
  50. costominimo:=min(costominimo, bilancio[i]*acquisti+bilancio[temporestante]);
  51. end;
  52. writeln(costominimo); { print result }
  53. end.
Success #stdin #stdout 0s 5280KB
stdin
10 5 6
1 2 2 5 2
5 4 3 5 4


stdout
24