Pagini recente » Cod sursa (job #1691371) | Cod sursa (job #518397) | Cod sursa (job #1912475) | Cod sursa (job #1315591) | Cod sursa (job #1840780)
# include <fstream>
# include <algorithm>
# define DIM 1010
# define x first
# define y second
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
pair<int,int> d[DIM*DIM],v[DIM];
int n,i,j,sol,nr,a,b,k;
int cmmdc(int a,int b){
while(b){
int r=a%b;
a=b;
b=r;
}
return a;
}
int main () {
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i].x>>v[i].y;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++){
a=v[i].x-v[j].x;
b=v[i].y-v[j].y;
if(b<0){
a=-a;
b=-b;
}
d[++k].x=a;
d[k].y=b;
if(a==0){
d[k].x=0;
d[k].y=1;
continue;
}
if(b==0){
d[k].x=1;
d[k].y=0;
continue;
}
if(a<0)
a=-a;
d[k].x/=cmmdc(a,b);
d[k].y/=cmmdc(a,b);
}
sort(d+1,d+k+1);
nr=1;
for(i=2;i<=k;i++){
if(d[i]==d[i-1])
nr++;
else{
sol+=nr*(nr-1)/2;
nr=1;
}
}
fout<<sol<<"\n";
return 0;
}