Прикреплённый файл «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 из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2012-04-11 14:24:34, 0.4 KB) [[attachment:longint.py]]
- [получить | показать] (2012-04-11 14:24:25, 1.4 KB) [[attachment:longint_hash.py]]
Вам нельзя прикреплять файлы к этой странице.