Pagini recente » Cod sursa (job #2955036) | Cod sursa (job #2943815) | Cod sursa (job #41704) | Cod sursa (job #2090699) | Cod sursa (job #717039)
Cod sursa(job #717039)
#include<cstdio>
#include<fstream>
#include<iomanip>
#include<algorithm>
using namespace std;
#define IN "trapez.in"
#define OUT "trapez.out"
#define INF 0x3f3f3f3f
#define MaxN 500005
#define MaxM 1005
fstream f(IN, ios::in), g(OUT, ios::out);
double panta[MaxN];
struct{
double x;
double y;
}point[MaxM];
unsigned long long i, j, n, N,cate, nr;
int main()
{
f>>n;
for(i=1; i<=n; i++)
f>>point[i].x>>point[i].y;
for(i=1; i<=n; i++)
{
for(j=i+1; j<=n; j++)
{
N++;
if(point[i].x==point[j].x)
panta[N]=INF;
else
panta[N]=(point[j].y-point[i].y)/(point[j].x-point[i].x);
}
}
sort(panta+1,panta+N+1);
nr=1;
for(i=1; i<N; i++)
{
if(panta[i]==panta[i+1])
nr++;
else
{
cate+=nr*(nr-1)/2;
nr=1;
}
}
g<<cate<<endl;
}