Pagini recente » Clasament simulare.oji.2015 | Cod sursa (job #271100) | Cod sursa (job #347663) | Cod sursa (job #923095) | Cod sursa (job #1350077)
#include <fstream>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
const int Dim = 1001, Inf = 0x3f3f3f3f, eps = 0.01;
int n, nr, k = 1, s;
struct punct
{
int x, y;
};
punct a[Dim];
double m[1000004], p = 1;
int main()
{
fin >> n;
for ( int i = 1; i <= n; i++)
fin >> a[i].x >> a[i].y;
for ( int i = 1; i <= n; i++)
for ( int j = i + 1; j <=n; j++)
if ( a[i].y == a[j].y )
m[++nr]=Inf;
else
{
m[++nr]= ((a[j].x-a[i].x) * p) / (a[j].y-a[i].y);
}
sort(m+1,m+1+nr);
for( int i = 2; i <= nr; i++)
{
if( m[i] == m[i-1] )
k++;
else
{
s += k * ( k - 1) / 2;
k = 1;
}
}
s += k * ( k - 1) / 2;
fout << s;
return 0;
}