Pagini recente » Cod sursa (job #1405969) | Cod sursa (job #1198209) | Cod sursa (job #3187794) | Cod sursa (job #2959432) | Cod sursa (job #2691727)
#include <fstream>
#include <algorithm>
using namespace std;
struct Punct
{
double x;
double y;
};
const int NMAX = 1000;
Punct punct[1 + NMAX];
double pante[1 + NMAX * NMAX];
int main()
{
ifstream in("trapez.in");
ofstream out("trapez.out");
int n, nr = 0;
in >> n;
for (int i = 1; i <= n; i++)
{
in >> punct[i].x >> punct[i].y;
for (int j = 1; j < i; ++j)
{
nr++;
pante[nr] = (punct[i].y - punct[j].y) / (punct[i].x - punct[j].x);
}
}
sort(pante + 1, pante + 1 + nr);
int sol = 0;
int lSecv = 1;
for (int i = 2; i <= nr; i++)
{
if (pante[i] == pante[i - 1])
{
lSecv++;
}
else
{
sol += lSecv * (lSecv - 1) / 2;
lSecv = 1;
}
}
sol += lSecv * (lSecv - 1) / 2;
out << sol << '\n';
return 0;
}