Cod sursa(job #261812)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 18 februarie 2009 19:41:43
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream.h>

long double v[1000001],p,q;

struct {int x,y;} a[1001];

int i,sol,n,j,k;

int pozitie ( int i, int j)

 { long double aux;
   int di=1, dj=0,aux2;

   while(i<j)

    {if(v[i]>v[j]) {aux=v[i]; v[i]=v[j]; v[j]=aux;
		   aux2=di; di=dj; dj=aux2;
		  }
      i+=di;
      j-=dj;
    }
   return i;
  }

void quick(int s, int d)

 { if(s<d)

     { int p=pozitie(s,d);
       quick(s,p-1);
       quick(p+1,d);
     }
 }

int main()
{

ifstream f("trapez.in");
ofstream g("trapez.out");

f>>n;

for(i=1;i<=n;i++) f>>a[i].x>>a[i].y;

for(i=1;i<n;i++)
 for(j=i+1;j<=n;j++)

 { if(a[i].x==a[j].x) v[++k]=5000;

    else

   { p=a[i].y-a[j].y;
     q=a[i].x-a[j].x;
     v[++k]=p/q;
   }
 }
quick(1,k);

for(i=1;i<k;i++)

  if(v[i]==v[i+1])

   {j=i+1; while(v[i]==v[j]) {sol++; j++;}}


g<<sol;

f.close();
g.close();
return 0;
}