Pagini recente » Arhiva de probleme | Cod sursa (job #1997488) | Cod sursa (job #2829552) | Cod sursa (job #2238379) | Cod sursa (job #1019009)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
typedef long long i64;
const int nmax= 1000;
i64 x[nmax+1], y[nmax+1];
float v[nmax*(nmax-1)/2+1];
int main( ) {
int n;
fin>>n;
for ( int i= 1; i<=n; ++i ) {
fin>>x[i]>>y[i];
}
int k= 0;
for ( int i= 1; i<=n-1; ++i ) {
for ( int j= i+1; j<=n; ++j ) {
if ( y[i]==y[j] ) {
v[k]= 84574;
} else {
v[k]= (float)(x[i]-x[j])/(float)(y[i]-y[j]);
}
++k;
}
}
sort(v, v+k);
int sol= 0, aux= 1;
for ( int i= 0; i<k; ++i ) {
if ( v[i]==v[i-1] ) {
++aux;
} else {
sol+= aux*(aux-1)/2;
aux= 1;
}
}
sol+= aux*(aux-1)/2;
fout<<sol<<"\n";
return 0;
}