Cod sursa(job #1350077)

Utilizator cristian.caldareaCaldarea Cristian Daniel cristian.caldarea Data 20 februarie 2015 17:31:59
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#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;
}