Cod sursa(job #1592537)

Utilizator DrumeaVDrumea Vasile DrumeaV Data 7 februarie 2016 18:46:02
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <limits>
#include <algorithm>

using namespace std;

const int Mn = 1e3 + 4;

int n, ans, cnt, it = 0;
int x[Mn], y[Mn];
double sl[Mn * Mn];

int main()
{
    ifstream fi("trapez.in");
    ofstream fo("trapez.out");

    fi >> n;

    for (int i = 1; i <= n; i++)
    {
        fi >> x[i] >> y[i];
        for (int j = 1; j < i; j++)
            sl[++it] = ((x[i] == x[j]) ? numeric_limits< double >::infinity() : (double)(y[j] - y[i]) / (x[j] - x[i]));
    }

    sort(sl + 1, sl + 1 + it);
    for (int i = 2; i <= it; i++)
        if (sl[i - 1] == sl[i])
           cnt++, ans += cnt;
      else
           cnt = 0;

    fo << ans << "\n";
    return 0;
}