Cod sursa(job #2296026)

Utilizator dianamichesaRosu Diana Michesa dianamichesa Data 4 decembrie 2018 10:07:28
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
const int N = 1001;
struct punct {
   int x, y;
};
punct p[N];
double m[N * N];
int n, cnt;
void citire () {
    f >> n;
    for(int i = 1; i <= n; i ++)
        f >> p[i].x >> p[i].y;
    for(int  i = 1; i < n; i ++)
        for(int j = i + 1; j <= n; j ++)
        m[++ cnt] = (double)(p[j].x - p[i].x) / (p[j].y - p[i].y);
}
int numardrepte () {
    int rez = 0, i = 1;
    while(i <= cnt) {
        int k = 1;
        while(i < cnt && m[i] == m[i + 1]) {
            k ++;
            i ++;
        }
        rez += k * (k - 1) / 2;
        i ++;
    }
    return rez;
}
int main()
{
    citire ();
    sort (m + 1, m + cnt + 1);
    g << numardrepte ();
    return 0;
}