Pagini recente » Cod sursa (job #3263871) | Cod sursa (job #2346105) | Cod sursa (job #1345723) | Borderou de evaluare (job #1567176) | Cod sursa (job #1350083)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct pct{int x,y;};
bool comp(pct a,pct b){
if(a.y*b.x<a.x*b.y)
return true;
else
return false;
}
int max1(int a,int b){
if(a>b)
return a;
return b;
}
int min1(int a,int b){
if(a<b)
return a;
return b;
}
pct v[1005],vv[1000*1000+5];
int main(){
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
int n,i,j,sol=1,l,nr=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d%d",&v[i].x,&v[i].y);
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++,sol++){
vv[sol].x=v[i].x-v[j].x;
vv[sol].y=v[i].y-v[j].y;
}
sol--;
sort(vv+1,vv+sol+1,comp);
for(i=1,l=1;i<=sol-1;i++)
if(vv[i].y*vv[i+1].x==vv[i].x*vv[i+1].y)
l++;
else{
nr+=l*(l-1)/2;
l=1;
}
nr+=l*(l-1)/2;
printf("%d",nr);
return 0;
}