Cod sursa(job #1809950)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 19 noiembrie 2016 14:11:35
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
struct punct
{
    double x, y;
};
punct puncte[1001];
int n,marime,i,j,elemente;
long long sol;
double pante[1000001];
int main()
{
    f>>n;
    for(i=1; i<=n; i++)
        f>>puncte[i].x>>puncte[i].y;
    for(i=1; i<=n; i++)
    {
        for(j=i+1; j<=n; j++)
        {
            punct p1,p2;
            p1=puncte[i];
            p2=puncte[j];
            if(p1.x==p2.x)
                pante[++marime]=1e18;
            else
                pante[++marime]=(p1.y-p2.y)/(p1.x-p2.x);
        }
    }
    sort(pante+1, pante+marime+1);
    elemente = 1;
    for(i=2; i<=marime; i++)
    {
        if(pante[i]!=pante[i-1])
        {
            sol+=(elemente*(elemente-1))/2;
            elemente=1;
        }
        else
            elemente++;
    }
    g<<sol<<'\n';
    f.close(); g.close();
}