Pagini recente » Profil MihneaMihnea300 | Cod sursa (job #146043) | Cod sursa (job #2692783) | Istoria paginii utilizator/dogdog | Cod sursa (job #2693019)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("patrate3.in");
ofstream fout("patrate3.out");
struct puncte
{
float x,y;
} v[1001];
float distSq(puncte p, puncte q)
{
return (p.x - q.x) * (p.x - q.x) + (p.y - q.y) * (p.y - q.y);
}
bool isSquare(puncte p1, puncte p2, puncte p3, puncte p4)
{
float d2 = distSq(p1, p2);
float d3 = distSq(p1, p3);
float d4 = distSq(p1, p4);
if (d2 == 0 || d3 == 0 || d4 == 0)
return false;
if (d2 == d3 && 2 * d2 == d4 && 2 * distSq(p2, p4) == distSq(p2, p3))
{
return true;
}
if (d3 == d4 && 2 * d3 == d2 && 2 * distSq(p3, p2) == distSq(p3, p4))
{
return true;
}
if (d2 == d4 && 2 * d2 == d3 && 2 * distSq(p2, p3) == distSq(p2, p4))
{
return true;
}
return false;
}
int main()
{
int n,nrpatrate=0;
fin>>n;
for(int i=1; i<=n; ++i)
fin>>v[i].x>>v[i].y;
for(int i=1; i<=n-3; i++)
for(int j=i+1; j<=n-2; j++)
for(int k=j+1; k<=n-1; k++)
for(int l=k+1; l<=n; l++)
if(isSquare(v[i],v[j],v[k],v[l])==true) nrpatrate++;
fout<<nrpatrate;
return 0;
}