Pagini recente » Cod sursa (job #39954) | Cod sursa (job #13179) | Cod sursa (job #643328) | Cod sursa (job #364275) | Cod sursa (job #1958373)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
struct punct
{
int x;
int y;
};
punct M[1005];
int Panta[500505],k,Sol,N,a;
void Read()
{
fin>>N;
for(int i=1;i<=N;i++)
{
fin>>M[i].x>>M[i].y;
}
}
void Solve()
{
for(int i=1;i<=N;i++)
for(int j=i+1;j<=N;j++)
{
k++;
Panta[k]=(M[j].x-M[i].x)*(M[j].y-M[i].y);
if(Panta[k]==0 && M[j].y==M[i].y)
Panta[k]=2000000000;
}
sort(Panta+1,Panta+k+1);
for(int i=1;i<=k && Panta[i]<2000000000;i++)
{
if(Panta[i]==Panta[i-1])
a++;
else
{
Sol+=a*(a-1)/2;
a=1;
}
}
}
void Print()
{
fout<<Sol;
}
int main()
{
Read();
Solve();
Print();
return 0;
}