Pagini recente » Cod sursa (job #320768) | Cod sursa (job #2686155) | Cod sursa (job #1529244) | Cod sursa (job #1416441) | Cod sursa (job #2114704)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <limits>
using namespace std;
int N, r;
pair<double, double> p[1001];
double M[500000];
int it;
void read()
{
ifstream f("trapez.in");
f>>N;
for (int i=0, x, y;i<N;i++)
{
f>>x>>y;
p[i]={x, y};
}
}
void count_lines()
{
double m;
for (int i=0;i<N;i++)
for (int j=i+1;j<N;j++)
if (p[i].first==p[j].first)
M[it++]=2000000001;
else
M[it++]=(p[i].second-p[j].second)/(p[i].first-p[j].first);
sort(M, M+it);
int k=1;
//cout<<M[0]<<' ';
for (int i=1;i<it;i++)
{
//cout<<M[i]<<' ';
if (M[i]==M[i-k])
{
k++;
}
else
{
r+=k*(k-1)/2;
k=1;
}
}
}
void write()
{
//cout<<r;
ofstream g("trapez.out");
g<<r;
}
int main()
{
read();
count_lines();
write();
}