Cod sursa(job #2308980)
| Utilizator | Data | 28 decembrie 2018 10:20:56 | |
|---|---|---|---|
| Problema | Trapez | Scor | 50 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.58 kb |
#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];
map<pair<int,int>,int> A;
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);
A[{a/d,b/d}]++;
}
uint64_t result=0;
for(auto a:A)
{
uint64_t nr=a.second;
result+=1LL*nr*(nr-1)/2;
}
g<<result;
return 0;
}
