Impartire

Time limit: 1s Memory limit: 64MB Input: Output:

Cerință

Se dau NN, AA, BB, CC și un vector VV de mărime NN.

Se aleg 22 indici, 1<=i<j<N1 <= i < j < N și se face împărțirea șirului VV în subsecvențele [1...i],[i+1...j],[j+1...N][1...i], [i+1...j], [j+1...N], să le numim S1S_1, S2S_2 și S3S_3.

Care este valoarea maximă care se poate obține pentru AG1+BG2+CG3A * G_1 + B * G_2 + C * G_3, unde G1G_1, G2G_2 și G3G_3 sunt cel mai mare divizor comun al elementelor din cele 33 secvențe.

Date de intrare

Pe prima linie se găsesc numerele NN, AA, BB și CC. Pe următoarea linie se găsește șirul VV.

Date de ieșire

Pe prima linie se va găsi un singur număr întreg, valoarea maximă cerută.

Restricții și precizări

  • 3N1053 \leq N \leq 10^5;
  • 1A,B,C,Vi1091 \leq A, B, C, V_i \leq 10^9
  • Pentru 20 de puncte 1N2001 \leq N \leq 200
  • Pentru alte 40 de puncte 1N10001 \leq N \leq 1000

Exemplul 1

stdin

6 1 1 1
6 6 9 9 3 7

stdout

16

Explicație

Se alege i=2i=2, j=5j=5

Log in or sign up to be able to send submissions!