Pagini recente » Cod sursa (job #2976392) | Cod sursa (job #2786243) | Cod sursa (job #910286) | Cod sursa (job #2688679) | Cod sursa (job #443937)
Cod sursa(job #443937)
#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;i++)
{ j=i+1;
while( f[i].n * f[j].m == f[i].m * f[j].n && j<crt)
{ sol++;
j++;
}
}
out<<sol;
out.close();
return 0;
}