Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n = raw_input()
- vector = [int(raw_input()) for _ in range(int(n))]
- nr_cautat = raw_input()
- vector_sortat = sorted(vector)
- if len(vector_sortat) % 2 == 0:
- c = 0
- else:
- c = 1
- lista_intermediara = []
- while len(vector_sortat) != 1:
- mijloc_vector = vector_sortat[int(len(vector_sortat)/2)]
- '''
- # In caz ca lungimea vectorului injumatatit este de dimensiune para, trebuie sa luam in calcul si mijlocul acestuia
- # dar daca este de dimensiune impara, nu il luam in calcul
- # Nu luam mijlocul vectorului prin incrementarea index-ului cu 1
- # Ex: [1 2 3 4 5 6 7] -> Lungimea vectorului injumatatit = 7 / 2 = 3.5 = 3 (asa face int-ul); Daca am face vector_sortat[3:] -> [4 5 6 7].
- '''
- # Pentru a nu lua in calcul elementul 4, vom face vector_sortat[(3 + 1):]
- if (len(vector_sortat) / 2) % 2 == 0:
- c = 0
- else:
- c = 1
- '''
- # Cand trunchiem o lista de la 0 catre un index (adica atunci cand cautam in stanga),
- # trebuie sa facem fix pe dos, pt ca l = [1 2 3 4 5 6 7 8 9]; l[0:4] -> [1 2 3 4]; c in acest caz va fi 0 pentru ca lungime_lista = 4; 4 % 2 = 0
- # -> c = 0; Deci c = 0, si daca facem l[0: (4 + c)] -> [1 2 3 4]; Facand l[0: (4 + (1 - c)] -> [1 2 3 4 5]
- '''
- if (int(nr_cautat) < int(mijloc_vector)):
- vector_sortat = vector_sortat[0:((int(len(vector_sortat)/2)) + (1 - c))]
- elif nr_cautat > mijloc_vector:
- vector_sortat = vector_sortat[(int(len(vector_sortat)/2) + c):]
- print mijloc_vector
- if (len(vector_sortat) == 1):
- print vector_sortat[0]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement