Pagini recente » Cod sursa (job #2239115) | Cod sursa (job #609041) | Cod sursa (job #807043) | Cod sursa (job #140552) | Cod sursa (job #2357589)
#include <bits/stdc++.h>
#define DN 1505
#define x first
#define y second
typedef std::pair<double, double> pii ;
int n, rez ;
pii p[DN] ;
double r32 = sqrt(3.0) / 2 ;
bool cmp(pii a, pii b) {
if (fabs(a.x - b.x) < 1e-5) {
if (fabs(a.y - b.y) < 1e-5)
return 0 ;
return a.y < b.y ; }
return a.x < b.x ; }
inline int cauta(pii c) {
if (std::binary_search(p, p + n, c, cmp))
return 1 ;
return 0 ; }
int main() {
freopen("triang.in", "r", stdin) ;
freopen("triang.out", "w", stdout) ;
scanf("%d", &n) ;
int i, j ;
for (i = 0 ; i < n ; ++i)
std::cin >> p[i].x >> p[i].y ;
std::sort(p, p + n, cmp) ;
for (i = 0 ; i < n ; ++ i)
for (j = i + 1 ; j < n ; ++ j) {
pii curr ;
curr.x = (p[i].x + p[j].x) * 0.5 - r32 * (p[j].y - p[i].y) ;
curr.y = (p[i].y + p[j].y) * 0.5 + r32 * (p[j].x - p[i].x) ;
rez += cauta(curr) ;
curr.x = (p[i].x + p[j].x) * 0.5 + r32 * (p[j].y - p[i].y) ;
curr.y = (p[i].y + p[j].y) * 0.5 - r32 * (p[j].x - p[i].x) ;
rez += cauta(curr) ; }
printf("%d", rez / 3) ;
return 0 ; }