== include(page="template/taskheader" task_id="sir4") ==
Poveste şi cerinţă...
Fie şirul $X{~i~}$ definit de următoarele variabile de iniţializare: $(X{~0~}, A, B, M)$ astfel:
* $X{~0~}$ este primul element al şirului
* $X{~i~} = (A * X{~i-1~} + B)$ $%$ $M$, pentru orice $i ≥ 1$ ({$x$} $%$ $y$ reprezintă restul împărţirii întregi a lui $x$ la $y$)
Răspundeţi la $Q$ întrebări de forma: Fiind dată poziţia $P{~i~}$ a unui element din şir, să se determine valoarea acestuia, $X{~P{~i~}~}$.
Date variabilele de iniţializare $X{~0~}, A, B, M$, determinaţi răspunsul pentru fiecare dintre cele $Q$ întrebări.
h2. Date de intrare
Fişierul de intrare $sir4.in$ ...
Programul citeşte date din fişierul {$sir4.in$}. Pe prima linie se găsesc numerele naturale $X{~0~}, A, B, M$ şi $Q$ separate prin câte un spaţiu. Pe fiecare din următoarele {$Q$} linii se află în ordine, câte unul dintre numerele $P{~1~},P{~2~},...P{~Q~}$, reprezentând poziţii ale unor termeni din şir.
h2. Date de ieşire
În fişierul de ieşire $sir4.out$ ...
Programul scrie pe prima linie din fişierul {$sir4.out$}, {$Q$} numere reprezentând răspunsurile, în ordine, la întrebările date. Numerele vor fi separate prin câte un spaţiu. După ultimul număr afişaţi caracterul de sfârşit de linie.
h2. Restricţii
* $... ≤ ... ≤ ...$
* $1 ≤ M ≤ 2 * 10^6^$
* $M este număr prim$
* $1 ≤ X{~0~}, A, B < M$
* $Q ≤ 10^3^$
* $0 ≤ P{~i~} < 10^10000^$
h2. Exemplu
table(example). |_. sir4.in |_. sir4.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
| 7 5 21 23 5
0
1
2
3
4
| 7 10 2 8 15
|
h3. Explicaţie
...
Primii $5$ termeni ai şirului $X$ sunt: $7, 10, 2, 8 şi 15$.
== include(page="template/taskfooter" task_id="sir4") ==