inter

Time limit: 1s Memory limit: 64MB Input: inter.in Output: inter.out

Cerință

Dată fiind o valoare NN, considerăm următoarele N×4N \times 4 puncte din plan:
(0,0), (1,0), (2,0)  (N, 0), (N, 1), (N, 2), , (N, N), (N1, N), (N2, N)  (0, N), (0, N1), (0, N2) , (0,1)(0,0),\ (1,0),\ (2,0)\ …\ (N,\ 0),\ (N,\ 1),\ (N,\ 2),\ \dots,\ (N,\ N),\ (N-1,\ N),\ (N-2,\ N)\ \dots\ (0,\ N),\ (0,\ N-1),\ (0,\ N-2)\ \dots,\ (0, 1).
(Altfel spus, punctele laticeale ale unui pătrat cu un colț în origine și celălalt în punctul de coordonate (N, N)(N,\ N)).
Considerăm segmentele care au extremitățile în două astfel de puncte, mai puțin segmente care se suprapun peste vreuna dintre cele 44 laturi ale pătratului delimitat de aceste puncte. De exemplu, pentru N=4N = 4, segmentele care au o extremitate în punctul (1,0)(1, 0) sunt cele din figură (punctul de coordonate (0,0)(0,0) este în stânga jos):

Ne interesează câte perechi formate din două astfel de segmente distincte și cu extremitățile distincte se intersectează într-un punct care să aibă ambele coordonate numere naturale. Regula jocului mai spune că unele dintre segmente nu se iau în calcul (se șterg) și acestea se specifică în datele de intrare.

Date de intrare

Fișierul inter.in conține pe prima linie un număr CC, un număr NN și un număr SS, separate prin câte un spațiu.
Dacă C=1C = 1, considerăm implicit că sunt șterse toate segmentele care nu sunt nici orizontale și nici verticale.
Dacă C=2C = 2, considerăm implicit că sunt șterse toate segmentele care nu formează unghi de 4545 de grade cu niciuna dintre dreptele suport ale laturilor pătratului.
Dacă C=3C = 3, nu considerăm șters implicit niciun segment.
Pe următoarele SS linii se găsesc câte 44 numere care descriu un segment care se șterge înainte de numărare: X1,Y1,X2,Y2X1, Y1, X2, Y2, separate prin spațiu, (X1,Y1)(X1, Y1) reprezintă un capăt al segmentului, iar (X2,Y2)(X2, Y2) celălalt capăt. Se garantează că aceste segmente sunt de tipul celor impuse de valoarea lui CC (de exemplu dacă C=1C = 1, aceste segmente se dau fie orizontale, fie verticale).
Ca explicație suplimentară, subliniem că dacă de exemplu avem C=1C = 1, se consideră șterse toate segmentele care nu sunt nici orizontale și nici verticale, dar și cele SS care sunt indicate în fișierul de intrare. Analog, dacă C=2C = 2, cele specificate în fisier se șterg în plus pe lângă cele considerate șterse implicit.

Date de ieșire

Fișierul inter.out va conține un singur număr natural.

Restricții și precizări

  • 2N10002 \leq N \leq 1000
  • 0S100 \leq S \leq 10
  • Pentru teste în valoare de 77 puncte avem C=1C = 1 și S=0S = 0
  • Pentru teste în valoare de 1616 puncte avem C=1C = 1 și S>0S \gt 0
  • Pentru teste în valoare de 99 puncte avem C=2C = 2 și S=0S = 0
  • Pentru teste în valoare de 2727 puncte avem C=2C = 2 și S>0S \gt 0
  • Pentru teste în valoare de 1313 puncte avem C=3C = 3 și N50N \leq 50
  • Pentru teste în valoare de 1515 puncte avem C=3C = 3 și N300N \leq 300
  • Pentru teste în valoare de 1313 puncte avem C=3C = 3 și N1000N \leq 1000

Exemplul 1

inter.in

3 2 0

inter.out

6

Explicație

Avem C=3C = 3, deci se iau în calcul toate segmentele, nu doar cele paralele cu axele sau care fac unghiuri de 4545 de grade cu acestea.
Singurul punct de coordonate întregi din interior este (1,1)(1, 1).
Segmentele care se intersectează în acest punct sunt:
(0,0) (2,2)(0, 0)\ (2, 2) cu (1,0) (1,2)(1, 0)\ (1, 2)
(0,0) (2,2)(0, 0)\ (2, 2) cu (2,0) (0,2)(2, 0)\ (0, 2)
(0,0) (2,2)(0, 0)\ (2, 2) cu (2,1) (0,1)(2, 1)\ (0, 1)
(1,0) (1,2)(1, 0)\ (1, 2) cu (2,0) (0,2)(2, 0)\ (0, 2)
(1,0) (1,2)(1, 0)\ (1, 2) cu (2,1) (0,1)(2, 1)\ (0, 1)
(2,0) (0,2)(2, 0)\ (0, 2) cu (2,1) (0,1)(2, 1)\ (0, 1)
Dacă testul ar fi avut C=1C = 1, răspunsul ar fi fost 11. S-ar fi intersectat segmentele (1,0) (1,2)(1, 0)\ (1, 2) cu (2,1) (0,1)(2, 1)\ (0, 1)
Dacă testul ar fi avut C=2C = 2, răspunsul ar fi fost 11. S-ar fi intersectat segmentele (0,0) (2,2)(0, 0)\ (2, 2) cu (2,0) (0,2)(2, 0)\ (0, 2)

Exemplul 2

inter.in

3 2 1
0 0 2 2

inter.out

3

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