Pagini recente » Cod sursa (job #2355053) | Cod sursa (job #3180743) | Cod sursa (job #844170) | Cod sursa (job #2278084) | Cod sursa (job #1520641)
#include <fstream>
#include <math.h>
#include <algorithm>
using namespace std;
double laturi[1125751];
class punct
{
public:
double x,y;
} v[1502];
int main()
{
int i,j,l, mid, b, e, n, nr=0 ;
ifstream in ("triang.in");
ofstream out ("triang.out");
in>>n;
l=n*(n-1)/2;
for(i=0;i<n;i++)
in>>v[i].x>>v[i].y;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
laturi[i]=sqrt((v[i].x-v[j].x) * (v[i].x-v[j].x) + (v[i].y-v[j].y) * (v[i].y-v[j].y));
sort(laturi, laturi+l);
for(i=1;i<n-1;i++)
for(j=i+1;j<n;j++) ///2 3 4 7 9
if(laturi[i]==laturi[j])
{
while(b<e)
{
b=i;e=l;
mid=(b+e)/2;
if((laturi[mid]==laturi[i]) && (laturi[mid+1]!=laturi[i]))
{
nr++;
break;
}
if(laturi[mid]<=n)
b=mid+1;
else
e=mid;
}
if(laturi[b]==nr)
nr++;
}
out<<nr;
in.close();
out.close();
return 0;
}