Cod sursa(job #1081184)

Utilizator Aleks10FMI - Petrache Alex Aleks10 Data 13 ianuarie 2014 12:30:02
Problema Trapez Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

vector <pair<int,int> > puncte;
vector <double> pante;
int main()
{
    int n,i,x,y,j;
    ifstream f("trapez.in");
    ofstream g("trapez.out");
    f>>n;
    for(i=1;i<=n;i++){
        f>>x>>y;
        puncte.push_back(make_pair(x,y));
    }

    double panta=0;
    for(i=0;i<n-1;i++)
        for(j=i+1;j<n;j++){
            if(puncte[i].second-puncte[i].first!=0)
                panta=(double)(puncte[j].second-puncte[j].first)/(puncte[i].second-puncte[i].first);
            else
                panta=-100000;
            pante.push_back(panta);
        }
    sort(pante.begin(),pante.end());

    int nr=0,dif;
    for(i=0;i<pante.size();i++){
        j=i+1;
        while(pante[i]==pante[j] && j<pante.size() && pante[i]!=-100000)
            j++;
        dif=j-i;
        i=j;
        nr+=dif*(dif-1)/2;
    }
    //for(i=0;i<pante.size();i++)
        //cout<<pante[i]<<endl;
    g<<nr;
    return 0;
}