Pagini recente » Cod sursa (job #2459520) | Cod sursa (job #1506873) | Cod sursa (job #2387118) | Cod sursa (job #660109) | Cod sursa (job #704052)
Cod sursa(job #704052)
#include <fstream>
#include <algorithm>
using namespace std;
int n,x[1010],y[1010],lung,sol;
double p[1000100];
inline double panta(int x1,int y1,int x2,int y2)
{
return 1.0*((1.0*(x2-x1))/(1.0*(y2-y1)));
}
inline double modul(double a)
{
if(a<0) return -a;
return a;
}
inline bool cmp(double a,double b)
{
return a<b;
}
int main()
{
ifstream in("trapez.in");
ofstream out("trapez.out");
in>>n;
for(int i=1;i<=n;++i)
{
in>>x[i]>>y[i];
for(int j=i-1;j>=1;--j)
{
if(y[i]!=y[j])
p[++lung]=panta(x[i],y[i],x[j],y[j]);
else
p[++lung]=10000000;
}
}
sort(p+1,p+lung+1,cmp);
for(int i=1;i<=lung;++i)
{
int sv=i,nr=0;
while(modul(p[i]-p[sv])<0.00001 && i<=lung)
{
++i;
++nr;
}
sol=sol+nr*(nr-1)/2;
}
out<<sol<<'\n';
out.close();
return 0;
}