Pagini recente » Cod sursa (job #1649500) | Cod sursa (job #1819831) | Cod sursa (job #726996) | Cod sursa (job #1073256) | Cod sursa (job #2368629)
#include <bits/stdc++.h>
#define NMAX 1010
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
int N, a[NMAX], b[NMAX], sol;
vector< pair <int , int> > v;
void read()
{
fin >> N;
for(int i = 1; i <= N; i++)
{
fin >> a[i] >> b[i];
}
}
void solution()
{
for(int i = 1; i <= N; i++)
for(int j = i+1; j <= N; j++)
{
int x = a[i] - a[j];
int y = b[i] - b[j];
int g = __gcd(x,y);
v.push_back({y/g,x/g});
}
sort(v.begin(),v.end());
pair<int,int> last=v[0];
int k = 1;
for(int i = 1; i < v.size(); i++)
{
if(v[i] == last)
k++;
else
{
sol += (k * (k-1)) / 2;
k = 1;
}
last = v[i];
}
fout << sol;
}
int main()
{
read();
solution();
return 0;
}