Pagini recente » Cod sursa (job #2735201) | Cod sursa (job #75339) | Cod sursa (job #1471501) | Cod sursa (job #722067) | Cod sursa (job #1920497)
#include <fstream>
#include <algorithm>
#define NMAX 1002
#define eps 1.0 / 1e9
using namespace std;
ifstream fin ("trapez.in");
ofstream fout ("trapez.out");
struct punct {
int x;
int y;
}v[NMAX];
double pante[NMAX*NMAX];
int main (){
int n;
long long rez = 0;
fin >> n;
for (int i = 1; i <= n; ++i)
fin >> v[i].x >> v[i].y;
int p = 0;
for (int i = 1; i <= n; ++i)
for (int j = i + 1; j <= n; ++j) {
double numarator = 1.0 * (v[j].y - v[i].y);
double numitor = 1.0 * (v[j].x - v[i].x);
if (numitor!=0)
pante[++p] = numarator/numitor;
}
sort (pante+1,pante+p+1);
int secv = 0;
for (int i = 1; i <= p; ++i)
if (fabs(pante[i]-pante[i-1]) <= eps)
secv ++;
else {
rez = rez + (secv * (secv-1)) /2;
secv = 1;
}
rez = rez + (secv*(secv-1)) /2;
fout << rez;
}