Pagini recente » Cod sursa (job #154494) | Cod sursa (job #123376) | Cod sursa (job #232271) | Cod sursa (job #1279375) | Cod sursa (job #2147568)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
int N,X[1003],Y[1003],Dr,Dim;
double Pante[1000003];
long long Sol;
int main()
{
fin>>N;
for(int i=1;i<=N;i++)
fin>>X[i]>>Y[i];
for(int i=1;i<=N;i++)
for(int j=i+1;j<=N;j++)
{
if(Y[i]==Y[j])
Dr++;
else
{
Dim++;
Pante[Dim]=(double)((double)(X[i]-X[j])/(double)(Y[i]-Y[j]));
}
}
sort(Pante+1,Pante+1+Dim);
for(int i=1;i<=Dim;i++)
{
int Cont=0;
while(Pante[i]==Pante[i+1])
{
i++;
Cont++;
}
Sol=Sol+(Cont*(Cont+1)/2);
}
Sol=Sol+(Dr-1)*Dr/2;
fout<<Sol<<'\n';
return 0;
}