Pagini recente » Borderou de evaluare (job #1511548) | Borderou de evaluare (job #2514725) | Cod sursa (job #2518017) | Borderou de evaluare (job #3119191) | Cod sursa (job #1142211)
#include <fstream>
#include <algorithm>
#include <stdlib.h>
#define eps 0.00000000000001
#define NMax 1001
using namespace std;
fstream f("trapez.in");
ofstream g("trapez.out");
struct punct {
int x;
int y;
}p[NMax];
int n, k, parox, i ,j, nr=0;
long long nrtr;
long double pante[NMax*NMax];
int main()
{
f>>n;
for (i=1; i<=n; i++)
f>>p[i].x>>p[i].y;
for (i=1; i<=n; i++)
for (j=i+1; j<=n; j++)
if(p[i].x-p[j].x!=0)
pante[++k]=(long double)(p[i].y-p[j].y)/(p[i].x-p[j].x);
else
parox++;
sort(pante+1, pante+k+1);
for (i=1; i<=k; i++) {
if(pante[i]==pante[i-1])
nr++;
else {
nrtr+=1ll*(nr-1)*nr/2;
nr=1;
}
}
nrtr+=1ll*(parox-1)*parox/2;
g<<nrtr;
return 0;
}