Pagini recente » Cod sursa (job #408518) | Cod sursa (job #2742266) | Cod sursa (job #168503) | Cod sursa (job #250084) | Cod sursa (job #2410167)
#include <cstdio>
#include <map>
using namespace std;
struct panta{
int numa, numi;
};
struct puncte{
int x, y;
}pct[1010];
map<pair<int, int>, int> p;
int n;
int cmmdc(int x, int y)
{
int r;
while(y)
{
r = x%y;
x = y;
y = r;
}
return x;
}
int comb(int n)
{
return n*(n-1)/2;
}
int main()
{
freopen("trapez.in", "r", stdin);
freopen("trapez.out", "w", stdout);
scanf("%d", &n);
int rez=0;
for(int i=1; i<=n; i++)
scanf("%d %d\n", &pct[i].x, &pct[i].y);
for(int i=1; i<=n; i++)
for(int j=i+1; j<=n; j++)
{
int a = pct[i].y-pct[j].y;
int b = pct[i].x-pct[j].x;
int cmd = cmmdc(a, b);
a/=cmd;
b/=cmd;
p[{a, b}]++;
}
for(auto it:p)
{
int nn = it.second;
rez+=comb(nn);
}
printf("%d", rez);
return 0;
}