Cod sursa(job #1952321)

Utilizator alexandra_paticaAndreea Alexandra Patica alexandra_patica Data 4 aprilie 2017 01:29:37
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("trapez.in");
ofstream g ("trapez.out");

struct punct
{
    int x, y;
}a[1002];
long long n, i, j, k, sol;
double m[1000001];
long long nr;

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

    for (i=1; i<=n; i++){
        for (j=i+1; j<=n; j++){
            if (a[i].x!=a[j].x && a[i].y!=a[j].y) m[++k]=(double)(a[i].y-a[j].y)/(a[i].x-a[j].x);
            else if (a[i].y==a[j].y)m[++k]=0;
            else m[++k]=900000;
//            g << a[i].y << " " << a[j].y << " "<< a[i].x << " "<< a[j].x <<'\n';
        }
    }
    sort (m+1, m+k+1);
    nr=1;
//    g << k << '\n';
    for (i=1; i<k; i++) {
//        g << m[i] << " ";
        if (m[i]==m[i+1]) nr++;
        else {
            sol+=nr*(nr-1)/2;
            nr=1;
        }
    }
    g << sol << '\n';
}