Cod sursa(job #1838409)

Utilizator mihai.alphamihai craciun mihai.alpha Data 31 decembrie 2016 22:32:22
Problema Trapez Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <cstdio>
#include <algorithm>
#define BIG 2000000000
FILE *fin, *fout;
double u[1000 * 1000];
int x[1000], y[1000];

bool cmp(double a, double b)  {
    return a < b;
}
int main()  {
    fin = fopen("trapez.in", "r");
    fout = fopen("trapez.out", "w");
    int n, a, b;
    fscanf(fin, "%d", &n);
    for(int i = 0;i < n;i++)  {
        fscanf(fin, "%d%d", &x[i], &y[i]);
    }
    int ind = 0;
    for(int i = 0;i < n;i++)
        for(int j = i + 1;j < n;j++)  {
            if(y[i] - y[j])
                u[ind++] = (double)(x[i] - x[j]) / (double)(y[i] - y[j]);
            else
                u[ind++] = BIG;
        }
    std::sort(u, u + ind, cmp);
    int k = u[0];
    int nr = 1;
    long long t = 0;
    for(int i = 1;i < ind;i++)  {
        if(u[i] == k)  {
            nr++;
        }
        else  {
            t += nr * (nr - 1) / 2,
            nr = 1;
        }
        k = u[i];
    }
    fprintf(fout, "%lld", t);
    fclose(fin);
    fclose(fout);
    return 0;
}