Pagini recente » Cod sursa (job #2378443) | Cod sursa (job #2243059) | Cod sursa (job #620272) | Cod sursa (job #2373888) | Cod sursa (job #774978)
Cod sursa(job #774978)
#include<fstream>
using namespace std;
ifstream f("patrate3.in");
ofstream g("patrate3.out");
int n,i,j,nrc,verif,nrsquare;
long x[1001],y[1001];
char buff[40];
int xa,xb,ya,yb,xplan1,xplan2,yplan1,yplan2;
void sortare_y()
{int change=1,aux;
while(change==1)
{change=0;
for(i=1; i<=n-1; i++)
if(y[i]>y[i+1])
{change=1;
aux=y[i];
y[i]=y[i+1];
y[i+1]=aux;
aux=x[i];
x[i]=x[i+1];
x[i+1]=aux;}
}
}
void search(int a, int b)
{int end,begin,mij,gasit=0;
begin=1; end=n;
while(begin<end)
{mij=(end+begin)/2;
if(x[mij]==a && y[mij]==b)
break;
if(y[mij]<b)
begin=mij+1;
else
end=mij-1;}
if((x[mij]==a && y[mij]==b) || (x[end]==a && y[end]==b))
verif++;
}
int get_number()
{long nr=0;
int ng=1;
if(buff[nrc]=='-')
{ng=-1; nrc++;}
while(buff[nrc]>='0' && buff[nrc]<='9')
{nr=nr*10+buff[nrc]-'0';
nrc++;
if(buff[nrc]=='.')
nrc++;}
nr*=ng;
return nr;
}
int main()
{f>>n;
f.getline(buff,40);
for(i=1; i<=n; i++)
{f.getline(buff,40);
nrc=0;
x[i]=get_number();
nrc++;
y[i]=get_number();}
sortare_y();
nrsquare=0;
for(i=1; i<=n; i++)
for(j=i+1; j<=n; j++)
{
xa=x[j]; ya=y[j];
xb=x[i]; yb=y[i];
yplan1=ya-(xb-xa);
yplan2=yb-(xb-xa);
xplan1=xa+(yb-ya);
xplan2=xb+(yb-ya);
verif=0;
search(xplan1,yplan1);
search(xplan2,yplan2);
if(verif==2)
nrsquare++;
}
g<<nrsquare/2;
f.close();
g.close();
return 0;}