Pagini recente » Cod sursa (job #2399045) | Cod sursa (job #1991357) | Rating Abi Talent (imparatulVerde) | Cod sursa (job #1548196) | Cod sursa (job #504877)
Cod sursa(job #504877)
#include<fstream>
#include<algorithm>
#define NMAX 1004
#define INF 2000000002
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
struct punct{int x, y;} a[NMAX];
int n, m;
long long pos;
double p[NMAX*NMAX];
void pante()
{
int A, B;
double aa, bb;
for (A=1; A<n; ++A)
for (B=A+1; B<=n; ++B)
{
m++;
aa=a[A].y-a[B].y;
bb=a[A].x-a[B].x;
if (bb==0) p[m]=INF;
else p[m]=aa/bb;
}
}
void citeste()
{
int i;
f>>n;
for (i=1; i<=n; ++i) f>>a[i].x>>a[i].y;
pante();
}
void cauta()
{
int i;
long long nr=1;
for (i=2; i<=m; ++i)
if (abs(p[i]-p[i-1])<=0.000000000000001) ++nr;
else
{
if (nr>1) pos+=nr*(nr-1)/2;
nr=1;
}
if (nr>1) pos+=nr*(nr-1)/2;
}
int main()
{
citeste();
sort(p+1, p+m+1);
cauta();
g<<pos<<"\n";
f.close();
g.close();
return 0;
}