Pagini recente » Cod sursa (job #43452) | Cod sursa (job #2614151) | Cod sursa (job #350475) | Cod sursa (job #2310221) | Cod sursa (job #2547073)
#include <bits/stdc++.h>
#define PDD pair<double,double>
#define X first
#define Y second
using namespace std;
ifstream in("triang.in");
ofstream out("triang.out");
int n,tot;
PDD a[1501];
double Dist(PDD a,PDD b)
{
return sqrt( (a.X-b.X)*(a.X-b.X) + (a.Y-b.Y)*(a.Y-b.Y) );
}
int main()
{
in>>n;
for(int i=1;i<=n;i++)
in>>a[i].X>>a[i].Y;
sort(a+1,a+1+n);
for(int i=1;i<=n-2;i++)
for(int j=i+1;j<=n-1;j++)
{
double dist=Dist(a[i],a[j]);
int poz=j;
for(int p=n;p;p/=2)
while(poz+p<=n && Dist(a[j],a[poz+p])-dist>0.00001)
poz+=p;
poz++;
while(poz<=n && fabs(Dist(a[j],a[poz])-dist)<0.00001)
{
if(fabs(Dist(a[i],a[poz])-dist)<0.00001)
tot++;
poz++;
}
}
out<<tot;
return 0;
}