Pagini recente » Cod sursa (job #1897650) | Cod sursa (job #2451781) | Cod sursa (job #2857202) | Cod sursa (job #1804689) | Cod sursa (job #42909)
Cod sursa(job #42909)
#include <fstream.h>
#include <math.h>
#include <stdio.h>
FILE* fout;
struct pct {long x,y;};
pct a[1000],b[1000];
long aux,x0,y0,x1,y1,x2,y2,x3,y3,mijx,mijy,dx,dy;
int comp(long e, double r)
{
if (r-e>-0.00001&&r-e<0.00001) return 0;
return 1;
}
int main()
{int i,n,k,ok,j,p=0;
long xxi,yyi;
double xx,yy;
ifstream fin("patrate3.in");
fout=fopen("patrate3.out","wt");
fin>>n;
for (i=0;i<n;i++)
{
fin>>xx>>yy;
xx*=1000000;
xxi=xx;
yy*=1000000;
yyi=yy;
if (comp(xxi,xx)) xxi++;
if (comp(yyi,yy)) yyi++;
a[i].x=xxi;
a[i].y=yyi;
}
for(i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
{
x0=a[i].x;
y0=a[i].y;
x1=a[j].x;
y1=a[j].y;
if (x0>x1)
{
aux=x1;
x1=x0;
x0=aux;
aux=y1;
y1=y0;
y0=aux;
}
mijx=(x0+x1)/2;
mijy=(y0+y1)/2;
dx=mijx-x0;
dy=mijy-y0;
if(dx<0) dx*=-1;
if(dy<0) dy*=-1;
if (y0<y1)
{
x2=mijx+dy;
y2=mijy-dx;
x3=mijx-dy;
y3=mijy+dx;
}
else
{
x2=mijx-dy;
y2=mijy-dx;
x3=mijx+dy;
y3=mijy+dx;
}
ok=0;
for (k=0;k<=(n-1)/2;k++)
{
if (x2==a[k].x&&y2==a[k].y) ok++;
else
if (x2==a[n-k-1].x&&y2==a[n-k-1].y) ok++;
if (x3==a[k].x&&y3==a[k].y) ok++;
else
if (x3==a[n-k-1].x&&y3==a[n-k-1].y) ok++;
if (ok==2) break;
}
if (ok>=2) p++;
}
fprintf(fout,"%d\n",p/2);
return 0;
}