Pagini recente » Cod sursa (job #1571691) | Cod sursa (job #2646596) | Cod sursa (job #1901760) | Cod sursa (job #2127237) | Cod sursa (job #2764248)
#include <bits/stdc++.h>
using namespace std;
int const N = 1e6 + 3;
double tg [N];
int X [1001] , Y [1001];
int main (){
freopen ("trapez.in" , "r" , stdin);
freopen ("trapez.out" , "w" , stdout);
int n;
scanf ("%d" , &n);
for(int i = 1 ; i <= n ; ++ i)
scanf ("%d%d" , &X [i] , &Y [i]);
int k = 0;
for(int i = 1 ; i < n ; ++ i)
for(int j = 1 + i ; j <= n ; ++ j)
tg [++ k] = (double)(X [i] - X [j]) / (double)(Y [i] - Y [j]);
sort (tg + 1 , tg + 1 + k);
long long ans = 0;
int lg = 1;
for(int i = 2 ; i <= k ; ++ i){
if (tg [i] == tg [i - 1]){
++ lg;
continue;
}
ans = ans + 1LL * lg * (lg - 1) / 2LL;
lg = 1;
}
ans = ans + 1LL * lg * (lg - 1) / 2LL;
printf ("%lld" , ans);
return 0;
}