pergament

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


Deși nu obișnuiește să deseneze, Adrian are o pasiune inedită: îi place să schițeze pe hârtie orașe imaginare... mai exact cum ar arăta acestea văzute de sus. În acest an, de ziua lui a primit cadou un pergament! Normal că menirea acestuia va fi ca Adrian să deseneze pe el schița celui mai mare oraș pe care și l-a imaginat până acum.

Pergamentul are lățimea unei coli de hârtie, însă lungimea sa este neașteptat de mare. De asemenea, pergamentul este împărțit în pătrate astfel încât pe lungime se află exact NN pătrate iar pe lățime se află exact KK pătrate. Astfel, Adrian are la dispoziție exact NKN \cdot K pătrate pe care le poate colora.

El decide să coloreze doar străzile orașului, deoarece nu are timp de mai mult și plănuiește să folosească două tipuri de străzi:

  1. Străzi orizontale
    • Vor fi desenate ca o secvență continuă de pătrate albastre.
    • Pe fiecare rând de la 11 la NN se va afla exact o stradă orizontală. Deci, la final vor fi exact NN străzi orizontale.
    • Fiecare stradă se desfășoară pe un singur rând.
    • Lungimea fiecărei străzi va fi de minim un pătrat și de maxim KK pătrate și este egală cu numărul de pătrate ce o compun.
    • Strada poate începe pe oricare pătrat de pe rând și poate avea orice lungime cât timp nu depășește limitele pergamentului.
  2. Străzi verticale
    • Vor fi desenate ca o secvență continuă de pătrate roșii.
    • Adrian va desena exact QQ străzi verticale, desfășurate pe una dintre coloanele de la 11 la KK.
    • Pe o coloană pot exista mai multe străzi verticale cu condiția să nu se suprapună. Nu este obligatoriu să existe străzi verticale pe toate coloanele.
    • Lungimea fiecărei străzi va fi de minim un pătrat și de maxim NN pătrate și este egală cu numărul de pătrate ce o compun.
    • Strada poate începe pe oricare pătrat de pe coloană și poate avea orice lungime cât timp nu depășește limitele pergamentului.


La final, Adrian observă că anumite pătrate au devenit mov, deoarece fac parte atât dintr-o stradă verticală cât și din una orizontală, deci au fost colorate atât cu roșu cât și cu albastru. Adrian este fascinat de apariția acestora și vrea să știe câte pătrate mov sunt în desenul său. Fiind prea obosit să le numere, vă roagă pe voi să-l ajutați.

Cerință

Cunoscând numerele NN, KK, QQ, precum și poziționarea celor NN străzi orizontale și a celor QQ străzi verticale, să se determine numărul de pătrate mov din pergament.

Date de intrare

Pe prima linie a fișierul de intrare pergament.in se află trei numere naturale separate prin câte un spațiu, NN, KK, QQ, cu semnificația din enunț.

Pe a doua linie se află patru numere naturale separate prin câte un spațiu, AA, BB, CC, DD.

Pe a treia linie se află două numere naturale X1X_1 și Y1Y_1, unde X1X_1 reprezintă coloana pătratului de început al străzii orizontale de pe rândul 1, iar Y1Y_1 reprezintă lungimea acesteia.

Datele următoarelor N1N-1 străzi se vor calcula prin formulele de mai jos, unde XiX_i reprezintă coloana pătratului de început al străzii orizontale de pe rândul ii (2iN2 \leq i \leq N), iar YiY_i reprezintă lungimea acesteia:

  • Xi=1+(Xi1A+B) % KX_i = 1 + (X_{i-1} \cdot A + B)\ \%\ K
  • Yi=1+(Yi1C+D) % (KXi+1)Y_i = 1 + (Y_{i-1} \cdot C + D)\ \%\ (K - X_i + 1)

Pe următoarele QQ linii se află câte trei numere naturale JJ, RR și LL, unde JJ reprezintă coloana pe care se află strada verticală, RR reprezintă rândul pe care se află pătratul de început al străzii, iar LL reprezintă lungimea străzii.

Date de ieșire

În fișierul de ieșire pergament.out se va afla un singur număr natural ce reprezintă numărul de pătrate mov din desenul lui Adrian.

Restricții și precizări

  • 1N10 000 0001 \leq N \leq 10\ 000\ 000
  • 1K501 \leq K \leq 50
  • 1Q100 0001 \leq Q \leq 100\ 000
  • 1A,B,C,D10 000 0001 \leq A,B,C,D \leq 10\ 000\ 000
  • 1XiK1 \leq X_i \leq K
  • 1YiKX+11 \leq Y_i \leq K-X+1
  • 1JK1 \leq J \leq K
  • 1RN1 \leq R \leq N
  • 1LNR+11 \leq L \leq N-R+1
  • Rândurile sunt numerotate de la 11 la NN, iar coloanele sunt numerotate de la 11 la KK.
  • Pentru 40 de puncte, N20 000N \leq 20\ 000.
  • Pentru alte 30 de puncte, N500 000N \leq 500\ 000.
  • Pentru alte 30 de puncte, nu există condiții adiționale.

Exemplu

pergament.in

6 3 2
1 1 1 1
1 2
2 2 4
1 4 3

pergament.out

3


Imaginea alăturată reprezintă pergamentul desenat de Adrian din exemplu.
Conform formulelor, vom avea următoarele străzi orizontale:

  • Linia 1: X1=1X_1 = 1 și Y1=2Y_1 = 2
  • Linia 2: X2=3X_2 = 3 și Y2=1Y_2 = 1
  • Linia 3: X3=2X_3 = 2 și Y3=1Y_3 = 1
  • Linia 4: X4=1X_4 = 1 și Y4=3Y_4 = 3
  • Linia 5: X5=3X_5 = 3 și Y5=1Y_5 = 1
  • Linia 6: X6=2X_6 = 2 și Y6=1Y_6 = 1

Se observă că există exact 3 pătrate mov.

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