Cerința
Conform unor texte antice (din noiembrie 2022), punctele A, B și C se numesc aproape coliniare dacă d(A,B)+d(B,C)=d(A,C), unde d(M,N)=∣XM−XN∣+∣YM−YN∣ reprezintă distanța Manhattan dintre punctele M și N.
Se dau coordonatele a n puncte în plan P1,P2,…,Pn. Găsiți numărul de triplete (i,j,k) (1≤i,j,k≤n, i=j=k=i) cu proprietatea că punctele Pi, Pj și Pk sunt aproape coliniare.
Date de intrare
Pe prima linie a fișierului de intrare aproapecoliniare.in se va afla numărul de puncte n (3≤n≤3⋅105).
Pe fiecare din următoarele n linii se vor afla două numere xi și yi (1≤xi,yi≤109) — coordonatele punctului Pi.
Se garantează că toate punctele din fișierul de intrare sunt distincte.
Date de ieșire
Fișierul de ieșire aproapecoliniare.out va conține numărul de triplete (i,j,k) (1≤i,j,k≤n, i=j=k=i) cu proprietatea că punctele Pi, Pj și Pk sunt aproape coliniare.
Restricții
- Pentru 8 puncte, n≤300
- Pentru 12 puncte, n,xi,yi≤800
- Pentru 10 puncte, n,xi,yi≤3000
- Pentru 5 puncte, n≤3000
- Pentru 20 de puncte, n,xi,yi≤50000
- Pentru 10 puncte, n≤50000
- Pentru 20 de puncte, toate coordonatele x și toate coordonatele y sunt distincte.
- Pentru 15 puncte, nu se impun restricții suplimentare.
Exemple
Exemplu 1:
aproapecoliniare.in
5
1 1
2 2
3 1
3 2
3 3
aproapecoliniare.out
16
Explicații
Cele 16 triplete din exemplu sunt:
- (1,2,4) și (4,2,1)
- (1,2,5) și (5,2,1)
- (3,4,5) și (5,4,3)
- (2,4,3) și (3,4,2)
- (2,4,5) și (5,4,2)
- (1,3,4) și (4,3,1)
- (1,3,5) și (5,3,1)
- (1,4,5) și (5,4,1)