Pagini recente » Cod sursa (job #1412116) | Cod sursa (job #515990) | Cod sursa (job #1101787) | Borderou de evaluare (job #2521567) | Cod sursa (job #1309143)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin( "trapez.in" );
ofstream fout( "trapez.out" );
const int nmax = 1000;
const double inf = 9999;
double x[ nmax + 1 ], y[ nmax + 1 ];
double p[ nmax * nmax + 1 ];
int main() {
int n, ans, para, ii, k;
fin >> n;
for( int i = 0; i < n; ++ i ) {
fin >> x[ i ] >> y[ i ];
}
ii = 0;
for( int i = 0; i < n - 1; ++ i ) {
for( int j = i + 1; j < n; ++ j ) {
if ( y[ i ] == y[ j ] ) {
p[ ii ++ ] = inf;
} else {
p[ ii ++ ] = (x[ i ] - x[ j ]) / (y[ i ] - y[ j ]);
}
}
}
sort( p, p + ii );
ans = 0;
for( int i = 0; i < ii; i = k ) {
k = i;
while ( p[ i ] == p[ k ] && k < ii ) {
++ k;
}
para = k - i;
ans += para * (para - 1) / 2;
}
fout << ans << "\n";
fin.close();
fout.close();
return 0;
}