Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.58 KB | None | 0 0
  1. n = raw_input()
  2. vector = [int(raw_input()) for _ in range(int(n))]
  3. nr_cautat = raw_input()
  4. vector_sortat = sorted(vector)
  5.  
  6. if len(vector_sortat) % 2 == 0:
  7.     c = 0
  8. else:
  9.     c = 1
  10.  
  11. lista_intermediara = []
  12.  
  13. while len(vector_sortat) != 1:
  14.     mijloc_vector = vector_sortat[int(len(vector_sortat)/2)]
  15.     '''
  16.    # In caz ca lungimea vectorului injumatatit este de dimensiune para, trebuie sa luam in calcul si mijlocul acestuia
  17.    # dar daca este de dimensiune impara, nu il luam in calcul
  18.    # Nu luam mijlocul vectorului prin incrementarea index-ului cu 1
  19.    # 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].
  20.    '''
  21.     # Pentru a nu lua in calcul elementul 4, vom face vector_sortat[(3 + 1):]
  22.     if (len(vector_sortat) / 2) % 2 == 0:
  23.         c = 0
  24.     else:
  25.         c = 1
  26.     '''
  27.    # Cand trunchiem o lista de la 0 catre un index (adica atunci cand cautam in stanga),
  28.    # 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
  29.    # -> 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]
  30.    '''
  31.     if (int(nr_cautat) < int(mijloc_vector)):
  32.         vector_sortat = vector_sortat[0:((int(len(vector_sortat)/2)) + (1 - c))]
  33.     elif nr_cautat > mijloc_vector:
  34.         vector_sortat = vector_sortat[(int(len(vector_sortat)/2) + c):]
  35.    
  36.     print mijloc_vector
  37.     if (len(vector_sortat) == 1):
  38.         print vector_sortat[0]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement