Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2025-08-22 19:10:49.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:sandwich.in, sandwich.outSursăJunior Challenge 2025
AutorMuresan Luca ValentinAdăugată devlad2009Vlad Tutunaru vlad2009
Timp execuţie pe test0.7 secLimită de memorie262144 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Sandwich

În Tărâmul Ooo, Jake vrea să pregătească sandwichul magic perfect. Pe o potecă sunt aliniate n ingrediente numerotate de la 1 la n, iar ingredientul i are o valoare de „gust” ai. Magia sandwichului are o regulă ciudată: nu are voie să aleagă două ingrediente alăturate, altfel magia se risipeşte.

Pentru orice segment continuu de ingrediente al al+1 ... ar, Jake poate alege un subşir de poziţii strict crescător (eventual gol) astfel încât să nu existe două poziţii adiacente alese. Gustului total acelui subşir este: ai1 + ai2 + ... + aik, cu l ≤ i1 < i1 < ... < ik ≤ r şi ij + 1 < ij+1 pentru orice 1 ≤ j < k.

Definim  f(a[l..r]) = gustul total maxim posibil pentru un astfel de subşir (se permite subşirul gol).

Jake vrea să ştie câtă magie totală poate aduna, dacă ia în calcul toate subsecvenţele posibile ale potecii. Cu alte cuvinte, calculaţi:

 S = \sum_{1 \leq l \leq r \leq n} f(a[l..r])

Date de intrare

Fişierul de intrare sandwich.in conţine numerele N, x, y, z şi a1. Şirul a este codificat astfel:

ai = (ai-1 * x + y) % z

Date de ieşire

În fişierul de ieşire sandwich.out afişaţi valoarea lui S modulo 109 + 7.

Restricţii

  • 1 ≤ N ≤ 5000000
  • 1 ≤ ai ≤ 1000000000
#PunctajRestricţii
13N ≤ 15
216N ≤ 500
315N ≤ 2000
510N ≤ 200000 şi ai ≤ 1
541N ≤ 200000
615N ≤ 5000000

Exemplu

sandwich.insandwich.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?