Pagini recente » Cod sursa (job #264821) | Cod sursa (job #94772) | Cod sursa (job #1867447) | Cod sursa (job #1314546) | Cod sursa (job #2146764)
#include<cstdio>
#include<unordered_map>
#include<cmath>
#include<algorithm>
#define pi 3.1415926535897932384626433832795
#define eps 1e-14
using namespace std;
struct hashr{
int operator () (const double &x) const{
int rez=x/pi;
return rez;}
};
struct equali{
bool operator () (const double &x,const double &y) const{
if (abs(x-y)<eps)
return 1;
return 0;}
};
unordered_map<double,int,hashr,equali>m;
pair<int,int>v[1005];
int main(){
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
int n,i,j,u=0,vertical=0;
long long rasp=0;
scanf("%d",&n);
if (n>500){
for(i=1;i<=n;i++)
scanf("%d%d",&v[i].first,&v[i].second);
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++){
if (v[i].second==v[j].second){
m[(double)2000000000]++;
continue;}
m[(double)(v[i].first-v[j].first)/(double)(v[i].second-v[j].second)]++;}
for(auto& it:m)
rasp=rasp+1LL*it.second*(it.second-1)/2;
printf("%lld\n",rasp);}
return 0;}