Cod sursa(job #770438)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 23 iulie 2012 00:11:07
Problema Trapez Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream>
#include<algorithm>
using namespace std;
int x[1001],y[1001];
double p[1000001];

bool egal(double a, double b){
     if ( (a-b<0.00000001)&&(a-b>-0.00000001) ) return(1);
      else return(0);
      } 

int main(void){
    ifstream fin("trapez.in");
    ofstream fout("trapez.out");
     int n,i,j,nr=0;
    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 (x[i]==x[j]) p[++nr]=1000000000; 
               else p[++nr]=(double)(y[j]-y[i])/(x[j]-x[i]);
    sort(p+1,p+nr+1); 
    unsigned long long aux=0,sol=0;
    for (i=2; i<=nr; ++i)
     if ( egal(p[i],p[i-1]) ) ++aux;
      else { sol+=aux*(aux+1)/2; aux=0; }
     sol+=aux*(aux+1)/2; 
    fout<<sol;
  return(0);
}