Pagini recente » Cod sursa (job #528766) | Cod sursa (job #2869990) | Profil candale | Cod sursa (job #1764820) | Cod sursa (job #1112235)
#include<cstdio>
#include<utility>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
#define x first
#define y second
FILE *in,*out;
short int n;
int contor;
double abc,ord,mijx,mijy,dx,dy,x2,y2,x3,y3;
vector< pair<double,double> > v;
int main()
{
in=fopen("patrate3.in","rt");
fscanf(in,"%hd", &n);
for(short int i=0; i<n; i++)
{
fscanf(in,"%lf %lf", &abc, &ord);
v.push_back(make_pair(abc,ord));
}
fclose(in);
sort(v.begin(),v.end());
vector< pair<double,double> > :: iterator unu, doi, end1=v.end()-1, end2=v.end();
for(unu=v.begin(); unu!=end1; unu++)
{
for(doi=unu+1; doi!=end2; doi++)
{
mijx=(unu->x + doi->x)/2;
mijy=(unu->y + doi->y)/2;
dx=fabs(mijx - unu->x);
dy=fabs(mijy - unu->y);
if(unu->y < doi->y)
{
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;
}
x2 = round(x2*10000.0) / 10000.0;
x3 = round(x3*10000.0) / 10000.0;
y2 = round(y2*10000.0) / 10000.0;
y3 = round(y3*10000.0) / 10000.0;
pair<double, double> pair1 = make_pair(x2, y2), pair2 = make_pair(x3, y3);
if(binary_search(v.begin(),v.end(),pair1))
if(binary_search(v.begin(),v.end(),pair2))
contor++;
}
}
out=fopen("patrate3.out","wt");
fprintf(out,"%d",contor);
fclose(out);
return 0;
}