Pagini recente » Cod sursa (job #361325) | Cod sursa (job #313094) | Cod sursa (job #316728) | Cod sursa (job #1155857) | Cod sursa (job #176933)
Cod sursa(job #176933)
#include <cstdio>
#include <algorithm>
#define Nmax 1001
#define INF 100000
using namespace std;
struct trap{int x,y;} v[Nmax];
struct frac{int it,at;} p[Nmax*Nmax];
int nrp;
struct cmp{
bool operator ()(const frac &a, const frac &b)
{
return ((a.it * b.at) < (a.at * b.it));
}
};
int n;
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%d %d",&v[i].x,&v[i].y);
for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
{
if(v[i].y != v[j].y)
{
p[nrp].it = v[i].x - v[j].x;
p[nrp].at = v[i].y - v[j].y;
if(p[nrp].at < 0)
{
p[nrp].it = -(p[nrp].it);
p[nrp].at = -(p[nrp].at);
}
nrp++;
}
else
{
p[nrp].it = INF;
p[nrp++].at = 1;
}
}
sort(p,p+nrp,cmp());
int nrtrap = 0;
for(int i=0; i<nrp-1; i++)
if(p[i].it * p[i+1].at == p[i].at * p[i+1].it)
nrtrap ++;
printf("%d\n",nrtrap);
return 0;
}