Pagini recente » Cod sursa (job #820446) | Cod sursa (job #2196072) | Cod sursa (job #1099829) | Cod sursa (job #2543200) | Cod sursa (job #1745369)
#include <fstream>
#include <algorithm>
#define PCT 1005
#define VAL 1000005
#define INF 2000000000
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
int N, i, j, M, nr;
int x[PCT], y[PCT];
long long ans;
long double v[VAL], a, b;
int main()
{
fin >> N;
for (i=1; i<=N; i++)
{
fin >> x[i] >> y[i];
for (j=1; j<i; j++)
{
if (x[i]>x[j])
{
a=x[i]-x[j];
b=y[i]-y[j];
}
else
{
a=x[j]-x[i];
b=y[j]-y[i];
}
// fout << a << " " << b << " " << a / b << '\n';
if (b==0)
v[++M]=0.0000000000001;
else
v[++M]=a / b;
//fout << i << " " << j << " " << v[M] << '\n';
}
}
sort(v+1, v+M+1);
nr=1;
for (i=2; i<=M; i++)
{
if (v[i]==v[i-1])
nr++;
else
{
ans+=(1LL*nr*(nr-1)) / 2;
nr=1;
}
}
fout << ans << '\n';
fin.close();
fout.close();
return 0;
}