Cod sursa(job #662313)

Utilizator suzanicaSuzanica Mihu suzanica Data 16 ianuarie 2012 15:20:28
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <algorithm>
#define NMAX 1011
#define INF 1<<30
#define E 0.00000000001
using namespace std;
int n,k,sol;
double x[NMAX],y[NMAX];
double p[NMAX*NMAX];
void read(){
     int i;
     ifstream f("trapez.in");
     f>>n;
     for(i=1;i<=n;++i){
                       f>>x[i]>>y[i];
     }
}
void solve(){
     int i,j,nr;
     for(i=1;i<n;++i)
      for(j=i+1;j<=n;++j)
       if(x[j]-x[i]==0) p[++k]=INF;
       else p[++k]=(y[j]-y[i])/(x[j]-x[i]);
     sort(p+1,p+k+1);
     nr=1;
     for(i=1;i<k;++i){
      if(p[i+1]-p[i]<E) nr++;
      else{
           sol=sol+nr*(nr-1)/2;
           nr=1;
           }
      }
}
void write(){
     ofstream g("trapez.out");
     g<<sol<<"\n";
}
int main(){
    read();
    solve();
    write();
    return 0;
}