Cod sursa(job #2325438)

Utilizator cosceexcosceex cosceex Data 22 ianuarie 2019 17:17:48
Problema Trapez Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>
#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;
    freopen("trapez.in","r",stdin);
    scanf("%d",&n);
     for(i=1;i<=n;++i){
                     scanf("%d%d",&x[i] ,&y[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(){
     freopen("trapez.out" , "w", stdout);
     printf("%d\n",sol);
     fclose(stdout);
     //ofstream g("trapez.out");
     //<<sol<<"\n";
}
int main(){
    read();
    solve();
    write();
    return 0;
}