Pagini recente » Cod sursa (job #671989) | Cod sursa (job #52909) | Cod sursa (job #1905970) | Cod sursa (job #171299) | Cod sursa (job #1338619)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct bine { int x ; int y ;};
bine v[1001],v2[500001];
int cmmdc ( int a , int b){
int r;
while(b!=0){
r=a%b;
a=b;
b=r;
}
return a;
}
bool sortare ( bine a , bine b ){
if(a.x!=b.x)
return a.x<b.x;
return a.y<b.y;
}
int main(){
int n,i,j,x1,y1,l,lmax,p,k=0;
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d %d",&v[i].x,&v[i].y);
for(i=1;i<=n-1;i++)
for(j=i+1;j<=n;j++){
x1=v[i].x-v[j].x;
y1=v[i].y-v[j].y;
p=cmmdc(x1,y1);
x1=x1/p;
y1=y1/p;
k++;
v2[k].x=x1;
v2[k].y=y1;
}
sort(v2+1,v2+k+1,sortare);
l=1; lmax=1;
for(i=1;i<=k-1;i++)
if(v2[i].x==v2[i+1].x&&v2[i].y==v2[i+1].y)
l++;
else{
if(l>lmax)
lmax=l;
l=1;
}
if(l>lmax)
lmax=l;
printf("%d\n",lmax*(lmax-1)/2);
return 0;
}