Pagini recente » Cod sursa (job #1328543) | Cod sursa (job #333708) | Cod sursa (job #1833845) | Cod sursa (job #732880) | Cod sursa (job #995340)
Cod sursa(job #995340)
#include<cstdio>
#include<algorithm>
using namespace std;
const int NMAX = 1005;
const int INF = 1<<30;
const double eps = 0.00000001;
int N,i,j,A,B,C,SOL,Cnt; double M[NMAX*NMAX];
struct Point {int X,Y;} P[NMAX];
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&N);
for(i=1;i<=N;i++)
{
scanf("%d",&P[i].X);
scanf("%d",&P[i].Y);
}
for(i=1;i<N;i++)
for(j=i+1;j<=N;j++)
{
A=P[j].Y-P[i].Y;
B=P[j].X-P[i].X;
if(!B) {M[++C]=INF; continue;}
M[++C]=(double)A/B;
}
sort(M+1,M+C+1);
for(i=1;i<=C;i++)
{
for(Cnt=1,j=i+1;j<=C;j++,Cnt++)
if(M[j]-M[i]>eps) break;
SOL+=(Cnt*(Cnt-1))/2;
}
printf("%d\n",SOL);
return 0;
}