Pagini recente » Cod sursa (job #1139378) | Cod sursa (job #571124) | Cod sursa (job #2089082) | Cod sursa (job #3139333) | Cod sursa (job #561897)
Cod sursa(job #561897)
#include<stdio.h>
#include<fstream>
#include<climits>
#include<algorithm>
using namespace std;
#define nrn 1024
#define inf INT_MAX
#define ll long long
//freopen ("trapez.in","r",stdin);
//freopen ("trapez.out","w",stdout);
struct punct{ll x,y;}P[nrn];
double m[nrn*nrn];
double panta(int a,int b)
{
if(P[a].x==P[b].x)
return inf;
return (double)(P[b].y-P[a].y)/(double)(P[b].x-P[a].x);
}
int main()
{
int i,n,k=0,j;
ll p,s=0;
double cc;
ifstream in("trapez.in");
ofstream out("trapez.out");
in>>n;
//scanf("%d",&n);
for(i=1;i<=n;++i)
in>>P[i].x>>P[i].y;
//scanf("%d%d",&P[i].x,&P[i].y);
for(i=1;i<n;++i)
for(j=i+1;j<=n;++j)
{
m[++k]=panta(i,j);
}
sort(m+1,m+k+1);
cc=m[1];
p=1;
for(i=2;i<=k;++i)
{
if(cc==m[i])
++p;
else
{
s+=p*(p-1)/2;
cc=m[i];
p=1;
}
}
out<<s<<'\n';
//printf("%d\n",s);
return 0;
}