Pagini recente » Cod sursa (job #3236944) | Cod sursa (job #644737) | Cod sursa (job #3287114) | Cod sursa (job #317525) | Cod sursa (job #1805959)
//#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream ka("trapez.in");
ofstream ki("trapez.out");
const int N_MAX = 1000;
struct punct
{
double x, y;
}puncte[N_MAX + 1];
int n, marime;
long long sol;
double pante[N_MAX * N_MAX + 1];
int main()
{
ka >> n;
for(int i = 1; i <= n; i++)
ka >> puncte[i].x >> puncte[i].y;
for(int i = 1; i <= n; i++)
{
for(int j = i + 1; j <= n; j++)
{
punct p1, p2;
p1 = puncte[i];
p2 = puncte[j];
if(p1.x == p2.x)
pante[++marime] = 1e18;
else
pante[++marime] = (p1.y - p2.y) / (p1.x - p2.x);
}
}
sort(pante + 1, pante + marime + 1);
int elemente = 1;
for(int i = 2; i <= marime; i++)
{
if(pante[i] != pante[i - 1])
{
sol += (elemente * (elemente - 1)) / 2;
elemente = 1;
}
else
elemente++;
}
ki << sol;
}