Cod sursa(job #2296099)

Utilizator IordachescuAncaFMI Iordachescu Anca Mihaela IordachescuAnca Data 4 decembrie 2018 13:15:25
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
#include<algorithm>
#define NMAX 1005
using namespace std;

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

int i, n, m, j, ans, k;
double abscissa[NMAX], ordinate[NMAX], slope[NMAX*NMAX];

void read()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>abscissa[i]>>ordinate[i];
    }
}

void createslope()
{
    m=0;
    for(i=1;i<n;i++)
    {
        for(j=i+1;j<=n;j++)
        {
            m++;
            slope[m]=(double)(ordinate[j]-ordinate[i])/(abscissa[j]-abscissa[i]);
        }
    }
}

void calculatenumber()
{
    ans=0;
    for(i=1;i<m;i++)
    {
        int k=1;
        while(i<m&&slope[i]==slope[i+1])
        {
            k++;
            i++;
        }
        ans+=k*(k-1)/2;
    }
    fout<<ans;
}

int main()
{
    read();
    createslope();
    sort(slope+1,slope+1+m);
    calculatenumber();
    fin.close();
    fout.close();
    return 0;
}