Cod sursa(job #1603306)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 17 februarie 2016 13:07:58
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("trapez.in");
ofstream g("trapez.out");

int n, i, j, nr, c;
struct punct
{
    int x, y;
}a[1001];
float panta[1000005];
int inc[1000005];

bool cmp(punct a, punct b)
{
    if (a.y == b.y)
        return b.x > a.x;
    return a.y < b.y;
}

int main()
{
    f >> n;
    for (i = 1; i <= n; i++)
        f >> a[i].x >> a[i].y;

    sort (a+1, a+n+1, cmp);

    for (i = 1; i < n; i++)
        for (j = i+1; j <= n; j++)
        {
            panta[++nr] = (a[j].y-a[i].y)/((a[j].x==a[i].x) ? 1 : (a[j].x-a[i].x));
            inc[nr] = a[j].y;
        }

    sort(panta+1, panta+n+1);

    for (i = 1; i < nr; i++)
    {
        if (panta[i] == panta[i+1] && inc[i] !=inc[i+1])
            c++;
        //g << panta[i] << " ";
    }
    g << c;
    return 0;
}