M and Ms

Time limit: 0.4s Memory limit: 1MB Input: mandms.in Output: mandms.out

Andra are un pachet cu nn tipuri de buline de ciocolată, cu câte cic_i buline de fiecare tip ii. Numărul cic_i depinde de patru factori, notați cu xx, yy, zz, tt, și se calculează astfel:

  • c1=xc_1 = x
  • ci=(ci1y) % t+zc_i = (c_{i−1} \cdot y)\ \%\ t + z, i\forall i, 2in2 \leq i \leq n

unde s-a notat cu a % ba\ \%\ b restul împărțirii numărului natural aa la numărul natural nenul bb.

Andra dorește să utilizeze toate bulinele pentru a construi piramide, fiecare fiind formată din unul sau mai multe rânduri, numerotate începând de la 11. Pentru fiecare piramidă în parte, pe rândul ii, se află 2i12^{i-1} buline. Spre exemplu, pe rândul 88 al unei piramide, se află 27=1282^7 = 128 de buline de ciocolată. Pe fiecare rând al unei piramide se află unul sau mai multe tipuri de buline, iar același tip de buline se poate folosi pe oricâte rânduri. Dintre piramidele care se pot forma, cele serioase conțin pe fiecare rând doar un tip de buline.

Cerință

Folosind toate bulinele, ajutați-o pe Andra să determine:

  1. Numărul minim de piramide de ciocolată pe care le poate forma.
  2. Numărul minim de piramide serioase de ciocolată pe care le poate forma, astfel încât toate cele obținute să fie de acest fel.

Date de intrare

Fișierul de intrare mandms.in conține pe prima linie numărul pp, care poate fi doar 11 sau 22.

Pe a doua linie a fișierului, se află numărul natural nn, cu semnificația din enunț.

Pe a treia linie se află numerele naturale xx, yy, zz, tt, în această ordine, cu semnificația din enunț.

Date de ieșire

Dacă p=1p = 1, fișierul de ieșire mandms.out conține un număr natural, reprezentând valoarea precizată la cerința 1.

Dacă p=2p = 2, fișierul de ieșire mandms.out conține un număr natural, reprezentând valoarea precizată la cerința 2.

Restricții și precizări

  • 1n2 000 0001 \leq n \leq 2 \ 000 \ 000
  • 1x,y,t<2641 \leq x, y, t < 2^{64}
  • 0z<2640 \leq z < 2^{64}
  • 1ci<2641 \leq c_i < 2^{64}
  • 0ciy<2640 \leq c_i \cdot y < 2^{64}, i\forall i, 2in2 \leq i \leq n
# Punctaj Restricții
1 30 p=1p = 1, n1 500 000n \leq 1 \ 500 \ 000, numărul total de buline este strict mai mic decât 2642^{64}
2 10 p=1p = 1, n1 500 000n \leq 1 \ 500 \ 000
3 40 p=2p = 2, n100 000n \leq 100 \ 000
4 20 p=2p = 2

Exemplul 1

mandms.in

1
8
3 15 18 17

mandms.out

5

Explicație

x=3x = 3, y=15y = 15, z=18z = 18, t=17t = 17

Numărul de buline de cele 88 tipuri se calculează astfel:

  • c1=x=3c_1 = x = 3
  • c2=(315) % 17+18=29c_2 = (3 \cdot 15)\ \%\ 17 + 18 = 29
  • c3=(2915) % 17+18=28c_3 = (29 \cdot 15)\ \%\ 17 + 18 = 28
  • c4=(2815) % 17+18=30c_4 = (28 \cdot 15)\ \%\ 17 + 18 = 30
  • c5=(3015) % 17+18=26c_5 = (30 \cdot 15)\ \%\ 17 + 18 = 26
  • c6=(2615) % 17+18=34c_6 = (26 \cdot 15)\ \%\ 17 + 18 = 34
  • c7=(3415) % 17+18=18c_7 = (34 \cdot 15)\ \%\ 17 + 18 = 18
  • c8=(1815) % 17+18=33c_8 = (18 \cdot 15)\ \%\ 17 + 18 = 33

Numărul minim de piramide care se pot forma este 55.

O posibilă configurație a piramidei este următoarea:

În această configurație, avem o piramidă cu 77 rânduri, una cu 66 rânduri, una cu 33 rânduri, una cu 22 rânduri, și una cu un singur rând.

Exemplul 2

mandms.in

2
8
3 15 18 17

mandms.out

7

Explicație

x=3x = 3, y=15y = 15, z=18z = 18, t=17t = 17

Numărul de buline de cele 88 tipuri se calculează astfel:

  • c1=x=3c_1 = x = 3
  • c2=(315) % 17+18=29c_2 = (3 \cdot 15)\ \%\ 17 + 18 = 29
  • c3=(2915) % 17+18=28c_3 = (29 \cdot 15)\ \%\ 17 + 18 = 28
  • c4=(2815) % 17+18=30c_4 = (28 \cdot 15)\ \%\ 17 + 18 = 30
  • c5=(3015) % 17+18=26c_5 = (30 \cdot 15)\ \%\ 17 + 18 = 26
  • c6=(2615) % 17+18=34c_6 = (26 \cdot 15)\ \%\ 17 + 18 = 34
  • c7=(3415) % 17+18=18c_7 = (34 \cdot 15)\ \%\ 17 + 18 = 18
  • c8=(1815) % 17+18=33c_8 = (18 \cdot 15)\ \%\ 17 + 18 = 33

Numărul minim de piramide serioase care se pot forma, astfel încât toate cele obținute să fie serioase, este 77.

O posibilă configurație a piramidei este următoarea:

În această configurație, avem două piramide cu 66 rânduri, două cu 55 rânduri, una cu 33 rânduri, și două cu 22 rânduri.

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