Diferente pentru summer-challenge-2009/solutii/runda-1/drepte3 intre reviziile #5 si #3

Nu exista diferente intre titluri.

Diferente intre continut:

h2(#drepte3). 'Drepte3':problema/drepte3
Dacă avem un algoritm eficient de a găsi intersecţia cu $x$ minim pentru setul nostru de drepte atunci problema este rezolvată, pentru că putem aplica de $4$ ori acelaşi algoritm pentru a găsi valorile minime şi maxime pentru $x$ şi $y$.
Daca avem un algoritm eficient de a gasi intersectia cu x minim pentru setul nostru de drepte atunci problema este rezolvata, pentru ca putem aplica de 4 ori acelasi algoritm pentru a gasi valorile minime si maxime pentru x si y.
Sortăm toate dreptele după ordinea lor pe y dacă ar fi intersectate de o dreaptă verticală cu $x$-ul foarte mic. Dacă avem două drepte $ax + by + c = 0$ şi $a{~1~}x + b{~1~}y{~1~} + c{~1~} = 0$, avem $y = (-ax - c) / b$ şi $y{~1~} = (-a{~1~}x - c{~1~}) / b{~1~}$. Dacă $x$ este foarte mic (tinde spre minus infinit) atunci $y > y{~1~}$ dacă $-a/b > -a{~1~}/b{~1~}$. După ce avem dreptele în ordine sortată, pentru a determina intersecţia dintre ele cu cel mai mic $x$, este de ajuns să ne uităm la intersecţiile între drepte consecutive în această ordine.
Sortam toate dreptele dupa ordinea lor pe y daca ar fi intersectate de o dreapta verticala cu x-ul foarte mic. Daca avem doua drepte ax + by + c = 0 si a1x + b1y1 + c1 = 0, avem y = (-ax -c) / b si y1 = (-a1x - c1) / b1. Daca x este foarte mic (tinde spre minus infinit) atunci y > y1 daca -a/b > -a1/b1. Dupa ce avem dreptele in ordine sortata, pentru a determina intersectia dintre ele cu cel mai mic x este de ajuns sa ne uitam la intersectiile intre drepte consecutive in aceasta ordine.
Astfel, soluţia se reduce la o simplă sortare de pante şi un _for_ pe care facem intersecţii de drepte. Complexitatea soluţiei va fi $O(n log n)$.
Astfel solutia se reduce la o simpla sortare de pante si un for pe care facem intersectii de drepte. Complexitatea solutiei va fi O(n log n).

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.