Pagini recente » Cod sursa (job #3172058) | Cod sursa (job #1041841) | Cod sursa (job #2635049) | Rating Sofian Rosa (Rosa) | Cod sursa (job #1142832)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
struct POINT{
int x,y;
};
bool cmp(POINT a,POINT b){
if(a.x==b.x)
return a.y<b.y;
return a.x<b.x;
}
POINT mijl(POINT A,POINT B){
POINT temp;
temp.x=A.x+B.x;
temp.y=A.y+B.y;
return temp;
}
vector <POINT> v;
vector <POINT> sol;
int main(){
freopen("paralel.in","r",stdin);
freopen("paralel.out","w",stdout);
int n,xx,yy,i,j,rasp=0,solN=0,st,k;
bool r;
POINT temp;
scanf("%d",&n);
for(i=0;i<n;++i){
scanf("%d%d",&xx,&yy);
temp.x=xx;
temp.y=yy;
v.push_back(temp);
}
for(i=0;i<n-1;++i){
for(j=i+1;j<n;++j){
sol.push_back(mijl(v[i],v[j]));
solN++;
}
}
sort(sol.begin(),sol.end(),cmp);
for(i=0;i<solN-1;++i){
st=i;
while(sol[st].x==sol[i].x&&sol[st].y==sol[i].y){
i++;
}
i--;
if(i!=st){
rasp=rasp+((i-st+1)*(i-st)/2);
}
}
printf("%d\n",rasp);
return 0;
}