Pagini recente » Cod sursa (job #2943682) | Cod sursa (job #326161) | Cod sursa (job #2066270) | Cod sursa (job #2651596) | Cod sursa (job #443935)
Cod sursa(job #443935)
#include<fstream>
#include<vector>
#define dmax 1004
using namespace std;
ifstream in("trapez.in");
ofstream out("trapez.out");
long long n,sol,crt=-1;
double u;
struct point
{ long long x;
long long y;
} p[dmax];
struct fr
{ long long n;
long long m;
double h;
} f[dmax*dmax];
typedef int (*compfn)(const void *,const void *);
int sf(struct fr *a,struct fr *b)
{ if( a->h - b->h > 0)return 1;
if( a->h - b->h < 0)return -1;
return 0;
}
int main()
{ long long i,j;
in>>n;
for(i=0;i<n;i++)
in>>p[i].x>>p[i].y;
in.close();
for(i=1;i<n;i++)
for(j=0;j<i;j++)
{ if(p[i].x - p[j].x == 0)
u=1000;
else u=( (double)p[i].y - (double)p[j].y) / (double)(p[i].x - (double)p[j].x);
crt++;
f[crt].h=u;
f[crt].n=p[i].y - p[j].y;
f[crt].m=p[i].x - p[j].x;
}
qsort( (void*)&f, crt+1, sizeof(struct fr), (compfn)sf);
for(i=0;i<crt-1;i++)
if( f[i].n * f[i+1].m == f[i].m * f[i+1].n)
sol++;
out<<sol;
out.close();
return 0;
}