Pagini recente » Cod sursa (job #3217924) | Cod sursa (job #2051801) | Cod sursa (job #1794279) | Cod sursa (job #643651) | Cod sursa (job #869563)
Cod sursa(job #869563)
#include <cstdio>
#include <algorithm>
using namespace std;
struct point
{
public:
int x,y;
point()
{
x = y = 0;
}
}pct[1005];
struct linie
{
public:
int sus,jos;
linie()
{
sus = jos = 0;
}
}line[1002*1002];
bool comp(const linie &a,const linie &b)
{
return a.sus * b.jos <= b.sus * a.jos;
}
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
int i,j,n;
int dx,dy;
int k;
int cr = 0;
unsigned int show = 0;
scanf("%d\n",&n);
for(i=1;i<=n;++i)
scanf("%d %d\n",&pct[i].x,&pct[i].y);
for(i=1 ;i<=n;++i)
for(j=i+1;j<=n;++j)
{
dx = pct[j].x-pct[i].x;
dy = pct[j].y-pct[i].y;
line[++cr].sus = dx;
line[cr].jos = dy;
}
sort(line+1,line+cr+1,comp);
k = -1;
for(i=1;i<=cr;++i)
{
if(line[i].sus * line[i-1].jos == line[i-1].sus * line[i].jos)
++k;
else
{
show += k * (k+1) / 2;
k = 0;
}
}
printf("%u\n",show);
return 0;
}