Cod sursa(job #984114)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 13 august 2013 16:10:57
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <algorithm>
#define Inf 2000000001
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
pair<int,int> Array[1002];
long double Pant[1000002];
int N,k;
long long Result;
void Read()
{
    f>>N;
    int i;
    for(i=1;i<=N;i++)
        f>>Array[i].first>>Array[i].second;
}
void Count_Pants()
{
    int i,j,aux=0;
    for(i=1;i<=N;i++)
        for(j=i+1;j<=N;j++)
        {
             if(Array[j].first!=Array[i].first)
                Pant[++k]=(long double)(Array[j].second-Array[i].second)/(long double)(Array[j].first-Array[i].first);
             else
                Pant[++k]=Inf+aux,aux++;
        }
    sort(Pant+1,Pant+k+1);
}
void Solve()
{
    int i,counter=1;
    for(i=2;i<=k;i++)
    {
        if(Pant[i]==Pant[i-1])
            counter++;
        else
        {
            Result+=counter*(counter-1)/2;
            counter=1;
        }
    }
    Result+=counter*(counter-1)/2;
    g<<Result<<"\n";
}
int main()
{
    Read();
    Count_Pants();
    Solve();
    return 0;
}