Pagini recente » Cod sursa (job #1835487) | Cod sursa (job #674004) | Cod sursa (job #2275233) | Cod sursa (job #2199944) | Cod sursa (job #2071301)
#include<cstdio>
#include<algorithm>
#include<vector>
#include<cmath>
using namespace std;
const double eps=1.e-14;
const double INF=2.e9;
struct POINT{
double x,y;
};
vector<POINT>v;
vector<double>v2;
int vertical(POINT P1, POINT P2)
{
return fabs(P1.x-P2.x)<eps;
}
double panta(POINT P1,POINT P2)
{
if(vertical(P1,P2))
return INF;
return (P2.y-P1.y)/(P2.x-P1.x);
}
int main(){
int n, i,j ,strk,tot;
POINT P1,P2;
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i = 1; i <= n ;i ++)
{
scanf("%lf%lf",&P1.x,&P1.y);
v.push_back(P1);
}
for( i = 0 ; i < v. size(); i++)
{
for( j = i + 1 ; j < v. size() ; j ++)
v2.push_back(panta(v[i],v[j]));
}
sort(v2.begin(),v2.end());
strk = 1;
tot=0;
for( i = 1; i < v2.size() ; i ++)
{
if(v2[i] == v2[i-1])
strk++;
else{
tot+=(strk*(strk-1))/2;
strk = 1;
}
}
printf("%d",tot);
return 0;
}