Pagini recente » Cod sursa (job #402275) | Cod sursa (job #1254056) | Cod sursa (job #337528) | Cod sursa (job #3274798) | Cod sursa (job #345841)
Cod sursa(job #345841)
/*#include<stdio.h>
#include<math.h>
#define N 15001
const double eps=1e-3;
int num,n;
struct milk{double x,y;}v[N];
void parcurg()
{
for (int i=1; i<n-1; ++i)
{
for (int j=i+1; j<n; ++j)
{
double ab=(v[i].x-v[j].x)*(v[i].x-v[j].x)+(v[i].y-v[j].y)*(v[i].y-v[j].y);
//int ab1=ab;
for (int k=j+1; k<=n; ++k)
{
double ac=(v[i].x-v[k].x)*(v[i].x-v[k].x)+(v[i].y-v[k].y)*(v[i].y-v[k].y);
//int ac1=ac;
double bc=(v[k].x-v[j].x)*(v[k].x-v[j].x)+(v[k].y-v[j].y)*(v[k].y-v[j].y);
//int bc1=bc;
if (ab+eps==bc&& bc+eps==ac)
++num;
}
}
}
printf("%d",num);
}
void citire()
{
freopen("triang.in","r",stdin);
freopen("triang.out","w",stdout);
scanf("%d",&n);
for (int i=1; i<=n; ++i)
scanf("%lf%lf",&v[i].x,&v[i].y);
parcurg();
}
int main()
{
citire();
return 0;
}*/
#include<cstdio>
#include<algorithm>
#define N 15001
//#define M 2000
#define M 37507501
using namespace std;
const double eps=1e-3;
struct triang{double x,y;}v[N];
short int n;
int num;
double a[M];
bool compar(const double &a,const double&b)
{
return a+eps<b;
}
void citire()
{
freopen("triang.in","r",stdin);
freopen("triang.out","w",stdout);
scanf("%hd",&n);
for (short int i=1; i<=n; ++i)
{
scanf("%lf",&v[i].x);
scanf("%lf",&v[i].y);
for (short int j=1; j<i; ++j)
a[++num]=(v[i].x-v[j].x)*(v[i].x-v[j].x)+(v[i].y-v[j].y)*(v[i].y-v[j].y);
}
}
void numar()
{
int nr=1,rez=0;
for (int i=1; i<num; ++i)
if (a[i+1]+eps>=a[i])
++nr;
else
{
rez+=nr*(nr-1)*(nr-2)/6;
nr=1;
}
rez+=nr*(nr-1)*(nr-2)/6;
printf("%d",rez);
}
int main()
{
citire();
sort (a+1,a+1+num,compar);
numar();
return 0;
}