Pagini recente » Cod sursa (job #1785480) | Cod sursa (job #1093147) | Cod sursa (job #413734) | Cod sursa (job #1221164) | Cod sursa (job #1952321)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("trapez.in");
ofstream g ("trapez.out");
struct punct
{
int x, y;
}a[1002];
long long n, i, j, k, sol;
double m[1000001];
long long nr;
int main ()
{
f >> n;
for (i=1; i<=n; i++) {
f >> a[i].x >> a[i].y;
}
for (i=1; i<=n; i++){
for (j=i+1; j<=n; j++){
if (a[i].x!=a[j].x && a[i].y!=a[j].y) m[++k]=(double)(a[i].y-a[j].y)/(a[i].x-a[j].x);
else if (a[i].y==a[j].y)m[++k]=0;
else m[++k]=900000;
// g << a[i].y << " " << a[j].y << " "<< a[i].x << " "<< a[j].x <<'\n';
}
}
sort (m+1, m+k+1);
nr=1;
// g << k << '\n';
for (i=1; i<k; i++) {
// g << m[i] << " ";
if (m[i]==m[i+1]) nr++;
else {
sol+=nr*(nr-1)/2;
nr=1;
}
}
g << sol << '\n';
}