Pagini recente » Cod sursa (job #348553) | Cod sursa (job #1613706) | Cod sursa (job #1613443) | Cod sursa (job #315956) | Cod sursa (job #693190)
Cod sursa(job #693190)
#include<cstdio>
#include<algorithm>
#include<utility>
using namespace std;
int n,i,j,x,y,y1,y2,x1,x2,a,b,dr,sol,crit(int,int);
pair<int,int> pct[1010];
double panta[1000010],tg1;
void read(),solve();
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",&x,&y);
pct[i]=make_pair(x,y);
}
}
void solve()
{
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
x1=pct[i].first;
y1=pct[i].second;
x2=pct[j].first;
y2=pct[j].second;
a=y2-y1;b=x2-x1;
if(b)
{
panta[++dr]=(double)a/b;
}
else
panta[++dr]=2000000010;
}
}
sort(panta+1,panta+dr);
tg1=panta[1];n=1;
for(i=2;i<=dr;i++)
{
if(panta[i]-tg1<0.000000001)
{
n++;
continue;
}
sol+=(n*(n-1))/2;
n=1;
tg1=panta[i];
}
printf("%d\n",sol);
}