Pagini recente » Cod sursa (job #478661) | Cod sursa (job #2329164) | Cod sursa (job #366601) | Cod sursa (job #3235288) | Cod sursa (job #717037)
Cod sursa(job #717037)
#include<cstdio>
#include<fstream>
#include<iomanip>
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, 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;
}