Pagini recente » Cod sursa (job #556652) | Cod sursa (job #334648) | Cod sursa (job #1719561) | Cod sursa (job #1513648) | Cod sursa (job #2449045)
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
#define inf 2000000100
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
int n, nr, sol;
pair <double, double> v[1010];
vector <double> a;
double calcPanta(int p1, int p2)
{
if(v[p1].first == v[p2].first) return inf;
return ((v[p2].second - v[p1].second) / (v[p2].first - v[p1].first));
}
int main()
{
f >> n;
for(int i=1; i<=n; i++) f >> v[i].first >> v[i].second;
for(int i=1; i<n; i++)
for(int j=i+1; j<=n; j++) a.push_back(calcPanta(i, j));
sort(a.begin(), a.end());
nr = 1;
//cout << a[0] << ' ';
for(int i=1; i<a.size(); i++)
{ //cout << a[i] << ' ';
if(a[i] == a[i-1]) nr++;
else
{ sol = sol + (nr * (nr - 1)) / 2;
nr = 1;
}
}
sol = sol + (nr * (nr - 1)) / 2;
g << sol << '\n';
return 0;
}