Cod sursa(job #1831641)

Utilizator stefii_predaStefania Preda stefii_preda Data 18 decembrie 2016 14:34:48
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>
#include <algorithm>

using namespace std;
ifstream in ("trapez.in");
ofstream out ("trapez.out");
const int N = 1005;

struct punct
{
    int x, y;
};
punct p[N];

struct panta
{
    int sus, jos;
};
panta m[N*N];

bool cmpanta (panta a, panta b)
{
    return (a.sus * b. jos < b.sus * a.jos);
}

int main()
{
    int n, i, j;
    in >> n;
    for(i = 1; i <= n; i++)
        in >> p[i].x >> p[i].y;
    int cate = 1;
    for(i = 1; i <= n; i++)
        for(j = 1; j <= n; j++)
            if(i != j)
            {
                m[cate].sus = p[j].y - p[i].y;
                m[cate].jos = p[j].x - p[i].x;
                cate++;
            }
    sort(&m[1], &m[cate], cmpanta);
    int egale = 1;
    int ans = 0;
    /*for(i = 1; i <= cate; i++)
        out <<m[i].sus<<m[i].jos<<endl;*/
    for(i = 2; i < cate; i++)
    {
        if(m[i].sus * m[i-1]. jos == m[i-1].sus * m[i].jos)
            egale ++;
        else
        {
            ans += egale*(egale-1)/2;
            egale = 1;
        }
    }
    out << ans;



    return 0;
}