Pagini recente » Cod sursa (job #2294685) | Cod sursa (job #2432931) | Cod sursa (job #432588) | Cod sursa (job #2149521) | Cod sursa (job #1984319)
#include <fstream>
#include <cmath>
#include <algorithm>
#define EPS 0.001
using namespace std;
ifstream in("triang.in");
ofstream out("triang.out");
struct Data{
double x;
double y;
};
int n,nr;
double k,s,xc,yc;
Data v[1501];
int comp(Data a,Data b){
return (fabs(a.x - b.x)< EPS && a.y < b.y || a.x < b.x);
}
void serachh(double xc,double yc)
{
int p=1,u=n,m;
while(p<=u){
m=(p+u)/2;
if(fabs(v[m].x - xc) < EPS && fabs(v[m].y - yc) < EPS){
nr++;
return;
}
else if(v[m].x > xc || fabs(v[m].x - xc) < EPS && v[m].y > yc)
u=m-1;
else
p=m+1;
}
}
int main()
{
in>>n;
for(int i=1;i<=n;i++)
in >> v[i].x >> v[i].y;
in.close();
sort(v+1,v+n+1,comp);
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
k=v[j].x-v[i].x;
s=v[j].y-v[i].y;
xc=v[i].x+k/2-sqrt(3)/2*s;
yc=v[i].y+sqrt(3)/2*k+s/2;
serachh(xc,yc);
xc=v[i].x+k/2+sqrt(3)/2*s;
yc=v[i].y-sqrt(3)/2*k+s/2;
serachh(xc,yc);
}
out << nr/3;
out.close();
return 0;
}