Cod sursa(job #1802811)

Utilizator Walrus21andrei Walrus21 Data 10 noiembrie 2016 17:38:31
Problema Trapez Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#include <algorithm>
#define d 1001
#define m 2000000001

using namespace std;

struct s{int x; int y;};

int i, j, n, k, q, np;
float p[d*d];
s v[d];

int main()
{
    freopen("trapez.in", "r", stdin);
    freopen("trapez.out", "w", stdout);
    scanf("%d", &n);
    for(i = 0; i < n; i++)
        scanf("%d %d", &v[i].x, &v[i].y);
    for(i = 0; i < n-1; i++)
        for(j = i + 1; j < n; j++)
        {
            if(v[i].y == v[j].y) p[k++] = m;
            else p[k++] = (float)(v[i].x - v[j].x) / (v[i].y - v[j].y);
        }
    stable_sort(p, p + k);
    i = 0;
    while(i < k)
    {
        q = 1;
        while(i < k && p[i] == p[i+1])
            {
                q++;
                i++;
            }
        i++;
        np += q * (q - 1) / 2;
    }
    printf("%d", np);
    return 0;
}