Cod sursa(job #2621719)

Utilizator ValentinBaluIonut Valentin Balu ValentinBalu Data 30 mai 2020 17:57:37
Problema Trapez Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("inv.in");
ofstream out("inv.out");
long x[1001],y[1001],n,k,cn=1,nr;
double pante[600001];
int main() {
    in>>n;
    for(int i=0;i<n;i++)
        in>>x[i]>>y[i];
    for(int i=0;i<n-1;i++)
        for(int j=i+1;j<n;j++)
            if(x[i]!=x[j]*(-1)) //verificam ca abscisele sa nu fie opuse(/0)
                pante[k++]=(double)(y[j]-y[i])/(x[j]-x[i]);
    sort(pante,pante+k);
    pante[-1]=-10000000;
    for(int i=0;i<=k;i++)
        if(pante[i]==pante[i-1])
            cn++; //daca au pante egale sunt paralele
        else{
            nr+=(cn*(cn-1))/2; //combinari de cn luate cate 2
            cn=1; //resetam
        }
    nr+=(cn*(cn-1))/2;
    out<<nr;
    return 0;
}