Pagini recente » Cod sursa (job #1217335) | Cod sursa (job #1831550) | Cod sursa (job #2509575) | Cod sursa (job #2716388) | Cod sursa (job #2309922)
#include <bits/stdc++.h>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
int main()
{
int N; f>>N;
int X[1000],Y[1000];
for(int i=0;i<N;i++) f>>X[i]>>Y[i];
vector<pair<int,int>> B;
for(int i=0;i<N;i++)
for(int j=i+1;j<N;j++)
{
int a=Y[i]-Y[j],
b=X[j]-X[i],
d=__gcd(a,b);
B.push_back({a/d,b/d});
}
sort(B.begin(),B.end());
uint64_t result=0;
pair<int,int> p=B[0];
for(int i=1,k=1;i<B.size();i++)
{
if(B[i]==p) k++;
else
{
result+=k*(k-1)/2,k=1;
p=B[i];
}
}
g<<result;
return 0;
}