Infasuratoarea convexa

Enuntul problemei: Se da un set de puncte in plan, sa se determine un poligon convex de arie minima care contine toate punctele in interiorul sau.
Rezolvare: O posibila solutie este sa fixam punctul cu abscisa minima ,iar in caz de egalitate luam punctul cu ordonata minima, si sa translatam toate punctele pana cand acesta ajunge in punctul de coordonate (0,0). Acum vom sorta punctele dupa formula  \frac{y}{x} unde x si y sunt coordonatele punctului, iar in caz de egalitate dupa distanta fata de punctul (0,0). In cazul nefericit in care x=0 vom considera ca  \frac{y}{x} = INF . Apoi vom parcurge punctele in ordine si le vom introduce intr-o stiva. Inainte sa introducem un punct in stiva trebuie insa sa ne uitam daca nu cumva punctele st[vf-1] , st[vf] si P sunt in ordine invers trigonometrica ( st - stiva, vf - varful stivei, P - punctul curent). Aici ne vom folosi de o alta proprietate a determinantului cu ajutorul caruia determinam aria unui triunghi. Mai exact vom calcula
D=\left| \begin{array}{ccc}
\ x_1 & y_1 & 1\
x_2 & y_2 & 1\
x_3 & y_3 & 1\end{array} \right|
pentru st[vf-1] = (x1.y1) , st[vf]= (x2,y3), P(x3,y3). Daca D este negativ atunci inseamna ca unghiul cu originea in st[vf] face o intoarcere la dreapta si trebuie scos din stiva. Repetam procedeul pana cand ramanem cu un singur punct in stiva sau pana cand intalnim un D >= 0 dupa care adaugam punctul in stiva. Dupa ce am terminat e posibil ca poligonul nostru inca sa fie convex deoarece nu am verificat unghiul care are originea in st[vf], asa ca il vom calcula pe D pentru punctele st[vf-1],st[vf],st[ 1 ] si vom scoate punctul din varf atata timp cat D va fi negativ. Punctele ramase reprezinta infasuratoarea convexa a setului de puncte primite la intrare.
devilkind: E posibil sa nu fi inteles eu bine, dar la faza cand y/x e 0 cred ca trebui sa pui INF sau -INF in functie de semnul lui y. nush daca merge doar cu INF. - FIXED