Cod sursa(job #176925)

Utilizator Mishu91Andrei Misarca Mishu91 Data 11 aprilie 2008 22:25:10
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <cstdio>
#include <vector>
#include <algorithm>

#define Nmax 1001
#define eps 0.001

using namespace std;

struct trap{int x,y;} v[Nmax];

double p[Nmax*Nmax];

int nrp;

struct cmp{
   bool operator ()(const double &a, const double &b)
   {
     return (a<b && b-a > eps);   
   }

};

int n;

int main()
{
  freopen("trapez.in","r",stdin);
  freopen("trapez.out","w",stdout);
  
  scanf("%d",&n);
  
  for(int i=0; i<n; i++)
    scanf("%d %d",&v[i].x,&v[i].y);
    
  for(int i=0; i<n-1; i++)
    for(int j=i+1; j<n; j++)
    {
      double pant;
      if(v[i].y != v[j].y)
        pant = ((double)(v[i].x - v[j].x) / (v[i].y - v[j].y)); 
      else 
        pant  = 12345.0;
      p[nrp++] = pant; 
    }
      
  
  sort(p,p+nrp,cmp());
      
  
  int nrtrap = 0;
  
  for(int i=0; i<nrp-1; i++)
    if(p[i+1] - p[i] < eps)
     nrtrap ++;
     
  printf("%d\n",nrtrap);   
  
  return 0;
}