MaxMin2

Time limit: 0.3s Memory limit: 64MB Input: maxmin2.in Output: maxmin2.out

Rolul meu nu era aici...

Buzdi s-a săturat să fie simplu, nervos sau primar. El hotărăște să se relaxeze, urmărind categoria sa preferată de probleme de pe magnificul site, numită maxime și minime. Deoarece simte că această categorie merită și puțin noroc, Buzdi se gândește la aceasta împreună cu numărul lui norocos, 22. Prin marea adunătură de idei din mintea lui (nu e prea mare...), acesta găsește două cerințe care chiar merită să fie puse într-un concurs de informatică (foreshadowing...).

Se dă un șir AA de NN numere naturale. Fie SS un subșir nevid al lui AA. Se definește următoarea funcție:

f(S)=(maxxSx+minxSx)2\large f(S)=\Big(\max_{x\in S} x + \min_{x\in S} x\Big)^2

Mai simplu, funcția f(S)f(S) returnează suma dintre valoarea maximă din subșirul SS și valoarea minimă din subșirul SS la pătrat.

Cerință

  1. Să se determine valoarea maximă f(SB)f(SB), unde SBSB este o subsecvență din șirul AA, precum și numărul de subsecvențe pentru care f(SB)f(SB) este maxim.
  2. Să se calculeze SAf(S)\sum_{S \subseteq A} f(S). Cu alte cuvinte, să se calculeze suma valorilor returnate de funcția ff pentru fiecare subșir SS din AA. Deoarece această sumă este foarte mare, se va determina restul împărțirii acesteia la 109+710^9 + 7.

Date de intrare

Pe prima linie a fișierului de intrare maxmin2.in se găsesc două numere naturale, CC și NN, separate printr-un spațiu, reprezentând cerința ce trebuie rezolvată și lungimea șirului AA. Pe următoarea linie se găsesc NN numere naturale, separate printr-un spațiu, reprezentând elementele șirului AA.

Date de ieșire

  • Dacă C=1C = 1, atunci pe prima linie a fișierului de ieșire maxmin2.out se vor găsi două numere naturale, separate printr-un spațiu, reprezentând răspunsul cerinței 11.
  • Dacă C=2C = 2, atunci pe prima linie a fișierului de ieșire maxmin2.out se va găsi un singur număr natural, reprezentând răspunsul cerinței 22.

Restricții și precizări

  • 1C21 \leq C \leq 2;
  • 1N200 0001 \leq N \leq 200 \ 000;
  • 1Ai109,1iN1 \leq A_i \leq 10^9, 1 \leq i \leq N;
  • Șirul AA este indexat de la 11;
  • Un subșir al șirului AA este un șir S=(Ai1,Ai2,Ai3,,Aik)S = (A_{i_1}, A_{i_2}, A_{i_3}, \dots, A_{i_k}) cu 1i1<<ikN1 \leq i_1 < \dots < i_k \leq N;
  • O subsecvență a șirului AA este un șir SB=(Al,Al+1,Al+2,,Ar)SB = (A_l, A_{l + 1}, A_{l + 2}, \dots, A_r) cu 1lrN1 \leq l \leq r \leq N;
    # Punctaj Restricții
    0 0 Exemplele
    1 14 C=11N2000C = 1 \\ 1 \leq N \leq 2000
    2 17 C=1C = 1
    3 17 C=21N20C = 2 \\ 1 \leq N \leq 20
    4 11 C=2C = 2 și toate valorile din șirul AA sunt egale
    5 20 C=21N2000C = 2 \\ 1 \leq N \leq 2000
    6 21 C=2C = 2

Exemplul 1

maxmin2.in

1 6
4 5 2 5 5 1

maxmin2.out

100 4

Explicație

C=1C = 1, deci se va rezolva doar cerința 11.
Valoarea maximă f(SB)f(SB) este egală cu 100100. Subsecvențele SBSB pentru care f(SB)=100f(SB) = 100 sunt formate de indicii din intervalele [2,2],[4,4],[5,5],[4,5][2, 2], [4, 4], [5, 5], [4, 5].
De asemenea, se observă că subșirul {5,5,5}\{5, 5, 5\} format de indicii {2,4,5}\{2, 4, 5\} nu reprezintă un răspuns valid, deoarece acesta nu este o subsecvență.

Exemplul 2

maxmin2.in

2 3
4 2 3

maxmin2.out

262

Explicație

C=2C = 2, deci se va rezolva doar cerința 22.
Sunt 77 subșiruri nevide în șirul AA.

  1. S={4}f(S)=(max(S)+min(S))2=(4+4)2=82=64S = \{4\} \rightarrow f(S) = (max(S) + min(S))^2 = (4 + 4)^2 = 8^2 = 64.
  2. S={2}f(S)=(max(S)+min(S))2=(2+2)2=42=16S = \{2\} \rightarrow f(S) = (max(S) + min(S))^2 = (2 + 2)^2 = 4^2 = 16.
  3. S={3}f(S)=(max(S)+min(S))2=(3+3)2=62=36S = \{3\} \rightarrow f(S) = (max(S) + min(S))^2 = (3 + 3)^2 = 6^2 = 36.
  4. S={4,2}f(S)=(max(S)+min(S))2=(4+2)2=62=36S = \{4, 2\} \rightarrow f(S) = (max(S) + min(S))^2 = (4 + 2)^2 = 6^2 = 36.
  5. S={4,3}f(S)=(max(S)+min(S))2=(4+3)2=72=49S = \{4, 3\} \rightarrow f(S) = (max(S) + min(S))^2 = (4 + 3)^2 = 7^2 = 49.
  6. S={2,3}f(S)=(max(S)+min(S))2=(3+2)2=52=25S = \{2, 3\} \rightarrow f(S) = (max(S) + min(S))^2 = (3 + 2)^2 = 5^2 = 25.
  7. S={4,2,3}f(S)=(max(S)+min(S))2=(4+2)2=62=36S = \{4, 2, 3\} \rightarrow f(S) = (max(S) + min(S))^2 = (4 + 2)^2 = 6^2 = 36.

Suma acestor valori este egală cu 262262.

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