Pagini recente » Cod sursa (job #1901186) | Cod sursa (job #2973339) | Cod sursa (job #3233605) | Cod sursa (job #2766823) | Cod sursa (job #2232512)
#include <cstdio>
#include <algorithm>
using namespace std;
double x[1000001];
struct point { int x, y;};
point a[1001];
int n, t;
long long sum=0;
void citire()
{
freopen("trapez.in", "r", stdin);
scanf("%d\n", &n);
for(int i=1;i<=n;i++) scanf("%d %d\n", &a[i].x, &a[i].y);
}
void calcul()
{
int i, j;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(a[i].x-a[j].x!=0) x[++t]=(double)(a[i].y-a[j].y)/(double)(a[i].x-a[j].x);
else x[++t]=0x3f3f3f3f;
sort(x+1, x+t+1);
int nr=1;
for(i=2;i<=t;i++)
if(x[i]==x[i-1]) { nr++; }
else { sum+=(long long)(nr*(nr-1))/2; nr=1;}
sum+=(long long)(nr*(nr-1))/2;
}
int main()
{
citire();
calcul();
freopen("trapez.out", "w", stdout);
printf("%lld\n",sum);
return 0;
}