Pagini recente » Cod sursa (job #2698827) | Cod sursa (job #2598172) | Cod sursa (job #2461111) | Cod sursa (job #886293) | Cod sursa (job #704065)
Cod sursa(job #704065)
#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;
}
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);
for(int i=1;i<=lung;++i)
{
int sv=i,nr=0;
while(modul(p[i]-p[sv])<0.0000000001 && i<=lung)
{
++i;
++nr;
}
sol=sol+nr*(nr-1)/2;
}
out<<sol<<'\n';
out.close();
return 0;
}