Pagini recente » Cod sursa (job #41062) | Cod sursa (job #852532) | Cod sursa (job #2721255) | Cod sursa (job #482299) | Cod sursa (job #3235971)
#include <bits/stdc++.h>
using namespace std;
ifstream f("triang.in");
ofstream g("triang.out");
const double EPS=1e-5,c=0.5,s=sqrt(3)/2;
struct Punct
{
double x,y;
Punct (double xx=0.0,double yy=0.0)
{
x=xx;
y=yy;
}
bool operator <(const Punct &A) const
{
if(abs(x-A.x)>EPS)
return x<A.x;
if(abs(y-A.y)>EPS)
return y<A.y;
return 0;
}
};
set <Punct> S;
Punct rotire(const Punct &A,const Punct &B)
{
double dx=B.x-A.x,dy=B.y-A.y;
return Punct(dx*c-dy*s+A.x,dx*s+dy*c+A.y);
}
int main()
{
int N,nrTr=0;
Punct A,M;
f>>N;
while(N--)
{
f>>A.x>>A.y;
for(auto &B:S)
{
M=rotire(A,B);
if(S.find(M)!=S.end())
nrTr++;
}
S.insert(A);
}
g<<nrTr;
return 0;
}