Pagini recente » Cod sursa (job #2334565) | Cod sursa (job #76323) | Cod sursa (job #37369) | Cod sursa (job #538137) | Cod sursa (job #1309377)
/// InfoArena ~~ Trapez
#include <algorithm>
#include <fstream>
using namespace std;
ifstream in("trapez.in");
ofstream out("trapez.out");
const int NMAX = 1000;
const double TANG = 666013;
struct PCT { double x,y; };
PCT v[NMAX+1];
double pant[NMAX*NMAX+NMAX+1];
int N, Ans = 0, sz = 0;
int main() {
in >> N;
for( int i = 1; i <= N; ++i ) {
in >> v[i].x >> v[i].y;
}
for( int i = 1; i < N; ++i ) {
for( int j = i+1; j <= N; ++j ) {
if( v[i].y == v[j].y ) pant[ ++sz ] = TANG;
else pant[ ++sz ] = (v[i].x-v[j].x) / (v[i].y-v[j].y);
}
}
sort( pant+1, pant+sz+1 );
int cate = 1;
for( int i = 2; i <= sz; ++i ) {
if( pant[i-1] == pant[i] ) ++cate;
else {
Ans += cate*(cate-1)/2;
cate = 1;
}
}
Ans += cate*(cate-1)/2;
out << Ans << '\n';
return 0;
}