Прикреплённый файл «longint_hash.py»

Загрузка

   1 #!/usr/bin/env python
   2 # coding: utf
   3 '''
   4 Реализовать тип «множество» для произвольно больших целых неотрицательных чисел. Программа должна уметь добавлять число в множество, удалять его оттуда и проверять, содержится ли число в множестве. В частности, должен быстро работать поиск по 10**6 элементам (например, 10**4 таких поисков :) ); пользоваться dict не разрешается :)) .
   5 '''
   6 
   7 # формат:
   8 # + число -- добавление числа
   9 # - число -- удаление числа
  10 # ? число -- поиск числа (ответ -- True или False)
  11 # конец файла -- конец файла :)
  12 
  13 import sys
  14 
  15 W=100000
  16 def ModHash(n): return n%W
  17 
  18 Hash=ModHash
  19 Table=[[] for i in xrange(W)]
  20 while True:
  21     s=sys.stdin.readline()
  22     if not s: break
  23     Action, Number = s.split()
  24     Number=int(Number)
  25     if Action == "+":
  26         if Number not in Table[Hash(Number)]:
  27             Table[Hash(Number)].append(Number)
  28     elif Action == "-":
  29         if Number in Table[Hash(Number)]:
  30             Table[Hash(Number)].remove(Number)
  31     elif Action == "?":
  32         print Number in Table[Hash(Number)] and True or False

Прикреплённые файлы

Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.

Вам нельзя прикреплять файлы к этой странице.