Cod sursa(job #770433)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 23 iulie 2012 00:02:57
Problema Trapez Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 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.000001)&&(a-b>-0.000001) ) 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 (y[i]==y[j]) p[++nr]=1000000000; 
               else p[++nr]=(double)(x[j]-x[i])/(y[j]-y[i]);
    sort(p+1,p+nr+1); int 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);
}