Pagini recente » Cod sursa (job #40959) | Cod sursa (job #3258197) | Cod sursa (job #2795894) | Cod sursa (job #2383890) | Cod sursa (job #2478053)
#include <iostream>
#include <algorithm>
#include <vector>
#include <fstream>
using namespace std;
const double ind = 2.e+9;
vector <double> pnt;
struct point
{
int x, y;
};
vector <point> v;
double panta(point a, point b)
{
if(b.x == a.x)
return ind;
return (b.y-a.y)/(double)(b.x-a.x);
}
int main()
{
int n, i, j;
double a, b;
point temp;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
fin>>n;
for(i = 1; i<= n; i++)
{
fin>>a>>b;
temp.x =a;
temp.y =b;
v.push_back(temp);
}
for(i=0; i<v.size()-1; i++)
{
for(j=i+1; j<v.size(); j++)
{
double w = panta(v[i], v[j]);
pnt.push_back(w);
}
}
sort(pnt.begin(), pnt.end());
int l = 1, trapez = 0;
for(i=1; i<pnt.size(); i++)
{
if(pnt[i] == pnt[i-1])
l++;
else
{
trapez += l*(l-1)/2;
l = 1;
}
}
trapez += l*(l-1)/2;
fout<<trapez;
return 0;
}