Pagini recente » Cod sursa (job #986609) | Cod sursa (job #519343) | Cod sursa (job #190342) | Cod sursa (job #478292) | Cod sursa (job #2284723)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct point{
long long l,c;
};
bool sortare(point a,point b)
{
if(a.l==b.l)
return a.c<b.c;
return a.l<b.l;
}
bool sortare2(point a,point b)
{
return a.l*b.c<b.l*a.c;
}
int main ()
{
int n,i,j,h=0,ct=0;
FILE *in, *out;
in=fopen("trapez.in","r");
out=fopen("trapez.out","w");
fscanf(in,"%d",&n);
point v[n+10], s[n*n+10];
for(i=1;i<=n;i++)
fscanf(in,"%lld %lld",&v[i].l,&v[i].c);
sort(v+1,v+n+1,sortare);
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
{
h++;
s[h].l=v[j].l-v[i].l;
s[h].c=v[j].c-v[i].c;
}
sort(s+1,s+h+1,sortare2);
for(i=1;i<h;i++)
{
j=i+1;
while(s[i].l*s[j].c == s[i].c*s[j].l && j<=h)
j++;
ct=ct+(j-i)*(j-i-1)/2;
i=j-1;
}
fprintf(out,"%d\n",ct);
return 0;
}