Cod sursa(job #1882253)

Utilizator antracodRadu Teodor antracod Data 17 februarie 2017 01:10:57
Problema Reuniune Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;

ifstream in("trapez.in");
ofstream out("trapez.out");

const int NMAX = 1000;

int x[NMAX+1],y[NMAX+1];
double s[NMAX*NMAX+1];

int main()
{
    int n,m=0,sol=0,l=1;
    in>>n;
    for(int i=1;i<=n;i++)
    {
        in>>x[i]>>y[i];
    }

    for(int i=1;i<=n-1;i++)
    {
        for(int j=i+1;j<=n;j++)
        {
            s[++m]=1.0*(y[j]-y[i])/(x[j]-x[i]);
        }
    }
    sort(s+1,s+m+1);
    for(int i=2;i<=m;i++)
    {
        if(s[i]==s[i-1])
        {
            l++;
        }
        else
        {
            sol=sol+l*(l-1)/2;
            l=1;
        }
    }
    sol=sol+l*(l-1)/2;
    out<<sol;
}