Pagini recente » Cod sursa (job #1106819) | Cod sursa (job #1916767) | Cod sursa (job #851535) | Cod sursa (job #2234961) | Cod sursa (job #1396670)
#include <cstdio>
#include <algorithm>
#define Nmax 1010
#define inf 0x3f3f3f3f
#define eps 1e-12
#define x first
#define y second
using namespace std;
int n , i , j , crt , sol , nr;
float tg[Nmax * Nmax];
pair < int , int > A[Nmax];
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d", &n);
for (i = 1; i <= n; ++i)
scanf("%d %d", &A[i].x, &A[i].y);
for (i = 1; i <= n; ++i)
for (j = i + 1; j <= n; ++j)
if (A[i].x != A[j].x) tg[++nr] = 1.0 * (A[i].y - A[j].y) / (A[i].x - A[j].x);
else tg[++nr] = inf;
sort(tg + 1 , tg + nr + 1);
tg[0] = tg[1] + 100;
for (j = 1; j <= nr; ++j)
if (tg[j] - tg[j-1] >= -eps && tg[j] - tg[j-1] <= eps) crt++;
else
{
sol += crt * (crt - 1) >> 1;
crt = 1;
}
sol += crt * (crt - 1) >> 1;
printf("%d\n", sol);
return 0;
}