Pagini recente » Cod sursa (job #1614918) | Cod sursa (job #738192) | Cod sursa (job #1724876) | Cod sursa (job #439820) | Cod sursa (job #1429566)
#include <fstream>
#include <vector>
#include <algorithm>
#include<cmath>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
int n;
struct punct
{
int x,y;
} v[1001];
vector <double> sol;
const double INF=(1LL<<31)-1;
const double eps=1.e-14;
double CalculPanta (punct a, punct b)
{
int p,q;
p=a.x-b.x;
q=a.y-b.y;
if (!p)
return INF + 1;
return (double) q / p * 1.0;
}
int main()
{
f>>n;
for(int i=0; i<n; i++)
f>>v[i].x>>v[i].y;
f.close();
int64_t ct=0;
for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
sol.push_back(CalculPanta(v[i],v[j]));
int m=sol.size();
sort(sol.begin(),sol.end());
int last=sol[0];
ct=0;
int sum=0;
for(int i=1; i<m; i++)
{
if(last==sol[i])
ct++;
else
{
if(ct>1)
sum+=((ct*(ct-1))/2);
ct=0;
last=sol[i];
}
}
g<<sum;
}