Pagini recente » Cod sursa (job #2129763) | Cod sursa (job #3201446) | Cod sursa (job #2631030) | Cod sursa (job #169706) | Cod sursa (job #1958381)
#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];
double Panta[500505];
int 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++;
if(M[j].x==M[i].x)
Panta[k]=2000000000;
else
Panta[k]=(double)(M[j].y-M[i].y)/(M[j].x-M[i].x);
}
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;
}