Cod sursa(job #1391325)

Utilizator AndyCatrunaCatruna Andy AndyCatruna Data 17 martie 2015 20:37:53
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <algorithm>
#define branza 2000000001
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
int x[1005],y[1005],n,i,k,sol,m,j;
double v[1000*1000+5];
int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>x[i]>>y[i];
    }
    for(i=1;i<=n;i++){
        for(j=i+1;j<=n;j++){
            if(y[i]==y[j]){
                v[++k]=branza;
            }
            else{
                v[++k]=(double)(x[j]-x[i])*1.0/(y[j]-y[i]);
            }
        }
    }
    sort(v+1,v+k+1);
    m=1;
    for(i=1;i<k;i++){
        if(v[i]==v[i+1]){
            m++;
        }
        else{
            sol=sol+m*(m-1)/2;
            m=1;
        }
    }
    fout<<sol+m*(m-1)/2;




    return 0;
}