"KRUŽNE ZONE" - UPUTSTVO ZA REŠAVANJE ZADATKA


Oblast: binarna pretraga, sortiranje nizaPotrebna su 3 niza:
  1. poluprečnici koncentričnih krugova koji predstavljaju zone i ima ih n(unosi se)
  2. X koordinate tačke unutar zona, ima ih m(unosi se)
  3. Y koordinate tačke unutar zona, ima ih m(unosi se)
​S obzirom da se ne unose poluprečnici koncentričnih krugova nego  sirine pojaseva(kružnih prstena), treba ove poluprečnike izračunati tako što se širina tekućeg prstena sabera sa poluprečnikom prethodnog manjeg kruga, a zatim tu vrednost ubaciti u niz poluprečnika(3).

Dalje treba, koristeći algoritam binarne pretrage tražiti poziciju u nizu poluprečnika, gde se rastojanje R od centra do tekuće tačke M(x,y)
 nalazi u pojasu koji prethodi poluprečniku u nizu na ispitivanoj poziciji. 
Npr ako je izračunato rastojanje tekuće tačke od centra R a poluprečnik u nizu na tekućoj poziciji s iznosi r[s], onda bi pronalaženje indeksa pojasa gde se tačka nalazi izgledala:

if(R>r[s-1]  &&  R<=r[s])
{
        pronađenPoluprecnik=true;
poz=s;
break;
}


Prethodno proveriti da li na indeksu s-1 ima elementa u nizu r. Ako nema, npr kad je s=0, onda je prethodni poluprečnik jednak nuli.
Sledeći kod to moze da reši:

/*Odredjuje prethodni poluprecnik*/
if(s-1<0)     //ako je s pocetni index onda je manji krug prstena  poluprecnika jednakim nuli
  {
                rP=0;
    }
else{
                rP=r[s-1];
}​