Pagini recente » Cod sursa (job #1783507) | Cod sursa (job #714756) | Cod sursa (job #2769803) | Cod sursa (job #1983660) | Cod sursa (job #2195653)
#include<fstream>
#include<cmath>
#include<algorithm>
using namespace std;
ifstream in ("trapez.in");
ofstream out ("trapez.out");
int n,egale,sol,k;
double dreapta[1001 * 1001];
const double eps = 0.00000001;
struct str1 {
double a,b;
}v[1005];
bool egal (int i, int j){
if (dreapta[i] - dreapta[j] < eps) {
return 1;
}
else {
return 0;
}
}
int main (void) {
in >> n;
for (int i = 1; i <= n; i ++) {
in >> v[i].a >> v[i].b;
}
for (int i = 1; i <= n; i ++) {
for (int j = i+1; j <= n; j ++) {
dreapta[++k] = double ((v[j].b - v[i].b) / (v[j].a - v[i].a));
}
}
sort (dreapta + 1,dreapta + k + 1);
egale = 1;
for (int i = 2; i <= k; i ++) {
if (egal(i,i-1) == 1) {
egale ++;
}
else {
sol += egale * (egale - 1) / 2;
egale = 1;
}
}
sol += egale * (egale - 1) / 2;
out << sol;
return 0;
}