Cod sursa(job #133032)

Utilizator razvi9Jurca Razvan razvi9 Data 7 februarie 2008 12:55:35
Problema Patrate 3 Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<cstdio>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
int n,i,j,nr;
int x,y,mijx,mijy,dx,dy;
pair<int,int> a[1002],v1,v2;
const int a1=100000;
int main()
{
	freopen("patrate3.in","r",stdin);
	freopen("patrate3.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		scanf("%d.%d",&x,&y);
		a[i].first=x*a1+y*10;
		scanf("%d.%d",&x,&y);
		a[i].second=x*a1+y*10;}
	sort(&a[1],&a[n+1]);
	for(i=1;i<n;i++)
		for(j=i+1;j<=n;j++){
			mijx=(a[i].first+a[j].first)/2;
			mijy=(a[i].second+a[j].second)/2;
			dx=abs(a[i].first-mijx);
			dy=abs(a[i].second-mijy);
			if(a[i].second < a[j].second){
				v1.first=mijx+dy;
				v1.second=mijy-dx;
				v2.first=mijx-dy;
				v2.second=mijy+dx;}
			else{
				v1.first=mijx-dy;
				v1.second=mijy-dx;
				v2.first=mijx+dy;
				v2.second=mijy+dx;}
			if(binary_search(&a[1],&a[n+1],v1) && binary_search(&a[1],&a[n+1],v2)) nr++;}
	nr=nr/2;
	printf("%d\n",nr);
	fclose(stdout);
	return 0;
}