# coding=utf-8

# v - wektor liczb
# x - poszukiwana liczba
def binary_index(v, x):
    # jeśli na liście pozostał tylko szukany element, to znaleźliśmy na pozycji 0
    if v == [x]:
        return 0
    # jeśli lista jest pusta lub zawiera element różny niż szukany, to już nie znajdziemy - zwracamy -1
    if len(v) <= 1:
        return -1
    s = len(v) / 2
    # jeśli lista jest za długa, to rekurencyjnie wywołaj funkcję dla mniejszego przypadku problemu
    if v[s] > x:
        return binary_index(v[:s], x)
    b = binary_index(v[s:], x)
    if b == -1:
        return -1
    else:
	# w przypadku, gdy szukamy w prawej połowie listy, trzeba odpowiednio przesunąć zwracany indeks
        return b + s