Tricolor

Time limit: 0.1s Memory limit: 32MB Input: tricolor.in Output: tricolor.out

Cerință

Se consideră un punct fix PP în plan, definit prin coordonatele sale (xP,yP)(x_P, y_P). De asemenea, se dau nn puncte distincte, fiecare având o anumită culoare dintre cele trei disponibile: roșu, galben sau albastru. Fiecare punct este reprezentat prin coordonatele sale (x,y)(x, y) și un cod numeric pentru culoare (11 pentru roșu, 22 pentru galben, 33 pentru albastru).

Să se determine numărul total de triunghiuri care se pot forma folosind cele nn puncte drept vârfuri, astfel încât:

  • Punctul PP să se afle în interiorul triunghiului.
  • Cele trei vârfuri ale triunghiului să nu aibă toate aceeași culoare (adică triunghiul să aibă cel puțin două culori diferite printre vârfurile sale).

Date de intrare

Fișierul de intrare tricolor.in conține pe prima linie coordonatele xPx_P și yPy_P ale punctului PP. Pe a doua linie se află numărul natural nn. Următoarele nn linii conțin câte trei valori xi,yi,cix_i, y_i, c_i, reprezentând coordonatele și culoarea punctului ii.

Date de ieșire

Fișierul de ieșire tricolor.out va conține pe prima linie un singur număr natural, reprezentând numărul de triunghiuri care respectă condițiile.

Restricții și precizări

  • 3n100 0003 \le n \le 100 \ 000
  • Coordonatele sunt numere întregi în intervalul [2105,2105][-2 \cdot 10^5, 2 \cdot 10^5].
  • Nu există trei puncte coliniare care să includă punctul PP.
  • Toate punctele, inclusiv punctul PP, sunt distincte două câte două.
  • Culorile sunt: 11 (Roșu), 22 (Galben), 33 (Albastru).
# Puncte Restricții
1 30 n100n \le 100
2 20 n1 000n \le 1 \ 000
3 20 n5 000n \le 5 \ 000
4 30 n100 000n \le 100 \ 000

Exemplu

tricolor.in

0 0
5
-2 -1 1
2 -1 1
0 2 1
1 1 2
-1 1 3

tricolor.out

2

Explicație


Punctul PP este în (0,0)(0, 0). Punctele sunt: A(2,1)A(-2, -1), B(2,1)B(2, -1), C(0,2)C(0, 2), D(1,1)D(1, 1), și E(1,1)E(-1, 1) cu culorile roșu, roșu, roșu, galben, respectiv albastru.

Triunghiurile care conțin PP sunt:

  • ABC\triangle ABC: Culori (1,1,1)(1, 1, 1). Nevalid (monocromatic).
  • ABD\triangle ABD: Culori (1,1,2)(1, 1, 2). Valid (două culori).
  • ABE\triangle ABE: Culori (1,1,3)(1, 1, 3). Valid (două culori).

Triunghiurile ca ADE\triangle ADE sau BCD\triangle BCD nu conțin punctul PP.

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