Pagini recente » Cod sursa (job #915752) | Cod sursa (job #1964127) | Cod sursa (job #3146309) | Cod sursa (job #3185452) | Cod sursa (job #1081950)
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
using namespace std;
ifstream fi("triang.in");
ofstream fo("triang.out");
struct pct{double x,y;};
int n,i,j,s;
double x,y;
pct a[1510],tmp;
int fc(const void *aa,const void *bb) {
if ((*(pct*)aa).x-(*(pct*)bb).x>0.001)
return 1;
if ((*(pct*)bb).x-(*(pct*)aa).x>0.001)
return -1;
if ((*(pct*)aa).y-(*(pct*)bb).y>0.001)
return 1;
if ((*(pct*)bb).y-(*(pct*)aa).y>0.001)
return -1;
return 0;
}
int main() {
fi>>n;
for (i=0;i<n;i++)
fi>>x>>y,a[i].x=x,a[i].y=y;
qsort((void*)a,n,sizeof(a[0]),fc);
for (i=0;i<n;i++)
for (j=i+1;j<n;j++) {
tmp.x=(a[j].x-a[i].x)*0.5-(a[j].y-a[i].y)*1.7320508*0.5+a[i].x;
tmp.y=(a[j].x-a[i].x)*1.7320508*0.5+(a[j].y-a[i].y)*0.5+a[i].y;
if (bsearch(&tmp,(void*)a,n,sizeof(a[0]),fc))
s++;
tmp.x=(a[j].x-a[i].x)*0.5+(a[j].y-a[i].y)*1.7320508*0.5+a[i].x;
tmp.y=-(a[j].x-a[i].x)*1.7320508*0.5+(a[j].y-a[i].y)*0.5+a[i].y;
if (bsearch(&tmp,(void*)a,n,sizeof(a[0]),fc))
s++;
}
fo<<s/3;
return 0;
}