Pagini recente » Cod sursa (job #550583) | Cod sursa (job #1644510) | Cod sursa (job #2442388) | Cod sursa (job #749194) | Cod sursa (job #3223240)
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;
ifstream cin("patrate3.in");
ofstream cout("patrate3.out");
struct coord{
long long x,y;
}v[1002];
bool cmp(coord a,coord b){
if(a.x==b.x)
return a.y<b.y;
return a.x<b.x;
}
int p,n;
bool gasit(long long x,long long y){
int st=1,dr=n;
while(st<=dr){
int mid=(st+dr)/2;
if(v[mid].x==x){
if(v[mid].y==y)
return 1;
if(v[mid].y<y)
st=mid+1;
else
dr=mid-1;
}else if(v[mid].x<x)
st=mid+1;
else
dr=mid-1;
}
return 0;
}
char s[15];
long long get_number(){
long long n=0;
int semn=1,i=0;
if(s[0]=='-')
semn=-1;
while(s[i]!=0){
if(s[i]=='-'){
semn=-1;
i++;
}else if(s[i]=='.')
i++;
else n=n*10+s[i++]-'0';
}
return n*semn;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>s;
v[i].x=get_number();
cin>>s;
v[i].y=get_number();
}
sort(v+1,v+n+1,cmp);
for(int i=1;i<n;i++){
long x1=v[i].x,y1=v[i].y;
for(int j=i+1;j<=n;j++){
long long x2=v[j].x,y2=v[j].y;
long long xm=(x1+x2)/2,ym=(y1+y2)/2;
long long dx=abs(xm-x1),dy=abs(ym-y1);
if(y1<y2&&gasit(xm-dy,ym+dx)&&gasit(xm+dy,ym-dx))
p++;
}
}
cout<<p;
return 0;
}