În planul xOy
se găsesc n
puncte de coordonate numere naturale nenule, nu neapărat aflate pe poziții distincte.
Cerința
Pentru fiecare punct din plan de coordonate (x, y)
trebuie să spuneți câte alte puncte au coordonatele (p, q)
cu proprietatea că 1 ≤ p < x
și 1 ≤ q ≤ y
(atenție, p
este strict mai mic decât x
, iar q
este mai mic sau egal cu y
).
Date de intrare
Fișierul de intrare numberofpoints.in
conține pe prima linie, separate prin câte un spațiu, numerele n
, A
, B
, C
, D
, x1
, y1
, x2
, y2
, unde n
este numărul de puncte din plan, (x1, y1)
sunt coordonatele primului punct din plan, iar (x2, y2)
sunt coordonatele celui de-al doilea punct. Coordonatele restului punctelor se generează după formulele:
x
i
= (x
i-2
* A + x
i-1
* B + C) % D + 1
, pentru oricei=3..n
y
i
= (y
i-2
* A + y
i-1
* B + C) % D + 1
, pentru oricei=3..n
Date de ieșire
Fișierul de ieșire numberofpoints.out
va conține exact n
linii, pe linia i
(cu i = 1..n
) se va afla un singur număr natural reprezentând numărul de puncte care au abscisa strict mai mică decât x
i
și ordonata mai mică sau egală decât y
i
.
Restricții și precizări
1 ≤ n ≤ 200.000
1 ≤ A, B, C, D, x1, y1, x2, y2 ≤ 1.000.000
Exemplu:
numberofpoints.in
7 19 17 11 23 4 5 7 2
numberofpoints.out
1 1 2 2 4 0 5
Explicații
Cele șapte puncte generate au coordonatele: (4, 5)
, (7, 2)
, (23, 3)
, (7, 9)
, (16, 15)
, (3, 1)
și (22, 15)
. Primul punct, de coordonate (4, 5)
are un singur punct care îndeplinește cerințele, anume cel de coordonate (3, 1)
. Al cincilea punct, de coordonate (16, 15)
are 4
puncte care îndeplinesc condițiile, anume (4, 5)
, (7, 2)
, (7, 9)
și (3, 1)
.