Cod sursa(job #1122771)

Utilizator sebinechitasebi nechita sebinechita Data 25 februarie 2014 20:21:51
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
#define MAX 1100

pair<int, int> a[MAX];

long double b[MAX*MAX];

int main()
{
    int s, n, i, j, x, y, l=0;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>a[i].first>>a[i].second;
    }
    int t=0;
    for(i=1;i<=n;i++)
    {
        for(j=i+1;j<=n;j++)
        {
            x=a[i].first-a[j].first;
            y=a[i].second-a[j].second;
            if(x)
                b[++t]=(long double)y/x;
            else
                l++;
        }
    }
    s=l*(l-1)/2;
    sort(b+1, b+t+1);
    int k=0;
    for(i=1;i<=t;i++)
    {
        if(b[i]==b[i-1])
            k++;
        else
        {
            s+=(k*(k-1)/2);
            k=1;
        }
    }

    fout<<s;

}