Pagini recente » Cod sursa (job #1996969) | Cod sursa (job #2816639) | Cod sursa (job #457929) | Cod sursa (job #1799651) | Cod sursa (job #2841775)
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#define NMAX 1000
using namespace std;
int x[NMAX], y[NMAX];
struct str {
int sus;
int jos;
};
str panta[NMAX*NMAX];
bool cmp( str i, str j ) {
return i.sus * j.jos > i.jos * j.sus;
}
int main() {
FILE *fin, *fout;
int n, i, j, l, nr, cnt;
fin = fopen( "trapez.in", "r" );
fout = fopen( "trapez.out", "w" );
fscanf( fin, "%d", &n );
for( i = 0; i < n; i++ )
fscanf( fin, "%d%d", &x[i], &y[i] );
cnt = 0;
for( i = 0; i < n; i++ ) {
for( j = i + 1; j < n; j++ ) {
panta[cnt].sus = y[j] - y[i];
panta[cnt].jos = x[j] - x[i];
cnt++;
}
}
sort( panta, panta + n * ( n - 1 ) / 2, cmp );
nr = 0;
l = 1;
for( i = 1; i < n * ( n - 1 ) / 2; i++ ) {
if( panta[i].sus * panta[i-1].jos == panta[i].jos * panta[i-1].sus )
l++;
else {
nr += ( l - 1 ) * l / 2;
l = 1;
}
}
fprintf( fout, "%d", nr );
fclose( fin );
fclose( fout );
return 0;
}