Pagini recente » Atasamentele paginii Clasament tema_lee | Atasamentele paginii Clasament rep | Cod sursa (job #1906543) | Cod sursa (job #1550131) | Cod sursa (job #2969439)
#include <bits/stdc++.h>
#define NMax 1001
using namespace std;
ifstream in("trapez.in");
ofstream out("trapez.out");
int x[NMax], y[NMax], N, c;
vector<double> Pante;
int Comb(int n) {
return n*(n-1)/2;
}
void Read() {
in >> N;
for (int i = 0; i < N; ++i)
in >> x[i] >> y[i];
}
void Solve() {
double m;
for (int i = 0; i < N-1; ++i)
for (int j = i+1; j < N; ++j) {
m = (double)(y[j]-y[i])/(x[j]-x[i]);
Pante.push_back(m);
}
int lg = Pante.size();
sort(Pante.begin(), Pante.end());
for (int i = 0; i < lg; ++i)
cerr << Pante[i] << ' ';
int aux = 1, contor = 0;
for (int i = 1; i < lg; ++i) {
if (Pante[i] == Pante[i-1])
aux++;
else {
contor += Comb(aux);
aux = 1;
}
} contor += Comb(aux);
out << contor << '\n';
}
int main() {
Read();
Solve();
return 0;
}