Cod sursa(job #1133622)

Utilizator negreadumitruNegrea Dumitru negreadumitru Data 5 martie 2014 10:39:41
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 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;
}