Pagini recente » Cod sursa (job #3130590) | Cod sursa (job #2616861) | Cod sursa (job #1504818) | Cod sursa (job #2090546) | Cod sursa (job #1467735)
#include <cstdio>
#include <cstdlib>
#include <climits>
#include <algorithm>
using namespace std;
#define Nmax 1002
#define inf 1 << 30
#define eps 1e-12
FILE *f = fopen ( "trapez.in", "r" );
FILE *g = fopen ( "trapez.out", "w" );
pair < int, int > v[Nmax];
double Panta[Nmax*Nmax];
int main(){
int N, x, y, rez = 0;
fscanf ( f, "%d", &N );
for ( int i = 1; i <= N; ++i ){
fscanf ( f, "%d%d", &x, &y );
v[i] = make_pair (x,y);
}
int k = 0;
for ( int i = 1; i <= N; ++i ){
for ( int j = i+1; j <= N; ++j ){
double T1 = 1.0 * (v[j].second - v[i].second);
double T2 = 1.0 * (v[j].first - v[i].first);
if ( T2 == 0 )
Panta[++k] = inf;
else
Panta[++k] = T1 / T2;
}
}
sort ( Panta + 1, Panta + k + 1 );
int nr = 0;
for ( int i = 1; i <= k+1; ++i ){
if ( fabs ( Panta[i] - Panta[i-1] ) < eps )
nr++;
else{
rez += ( nr * (nr-1) ) / 2;
nr = 1;
}
}
fprintf ( g, "%d", rez );
return 0;
}