Pagini recente » Cod sursa (job #1179669) | Cod sursa (job #65924) | Cod sursa (job #84997) | Cod sursa (job #3229405) | Cod sursa (job #416429)
Cod sursa(job #416429)
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
#define file_in "patrate3.in"
#define file_out "patrate3.out"
#define Nmax 1500
#define x first
#define y second
#define eps 0.0001
int n,nrp,i,j,k,l,ok;
double x[Nmax];
double y[Nmax];
double l1,l2,l3,l4,d;
pair<double,double> p[Nmax];
inline double dist(double x1,double y1,double x2, double y2)
{
return ((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d", &n);
for (i=1;i<=n;++i)
scanf("%lf %lf", &p[i].x, &p[i].y);
fclose(stdin);
sort(p+1,p+n+1);
nrp=0;
for (i=1;i<=n-3;++i)
for (j=i+1;j<=n-2;++j)
for (k=j+1;k<=n-1;++k)
{
int ok=1;
for (l=k+1;l<=n && ok;++l)
{
l1=dist(p[i].x,p[i].y,p[j].x,p[j].y);
l2=dist(p[j].x,p[j].y,p[l].x,p[l].y);
l4=dist(p[i].x,p[i].y,p[k].x,p[k].y);
d=dist(p[i].x,p[i].y,p[l].x,p[l].y);
if (fabs(l1-l2)<eps && fabs(l2-l4)<eps && fabs(l1-l4)<eps && fabs(d-2*l1)<eps)
{
nrp++;
ok=0;
}
}
}
printf("%d\n", nrp);
fclose(stdout);
return 0;
}