Pagini recente » Cod sursa (job #1362792) | Cod sursa (job #281968) | Cod sursa (job #2376198) | Cod sursa (job #629860) | Cod sursa (job #1369036)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f ("trapez.in");
ofstream g ("trapez.out");
struct Punct {
int x, y;
};
const int NMAX = 1000 + 1;
int n;
Punct p[NMAX];
vector <double> v;
void citeste() {
f >> n;
for (int i = 1; i <= n; i++) f >> p[i].x >> p[i].y;
}
void rezolva() {
double panta;
for (int i = 2; i <= n; i++)
for (int j = 1; j < i; j++) {
panta = (p[i].y - p[j].y) * 1.0 / (p[i].x - p[j].x);
v.push_back(panta);
}
sort(v.begin(), v.end());
int nr = 1, sol = 0, l = v.size();
for (int i = 1; i < l; i++) {
if (v[i] == v[i - 1]) {nr++; continue;}
else {
sol = sol + nr * (nr - 1) / 2;
nr = 1;
}
}
sol = sol + nr * (nr - 1) / 2;
g << sol;
}
int main() {
citeste();
rezolva();
}