IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Структуры данных, множество.
gamordzhoba
сообщение 30.11.2005 17:15
Сообщение #1


Гость






дана задача, и она ни фига не получается. help me please.
Реализуйте структуру данных множество для чисел от 0 до 10^8. Множество должно поддерживать операции INSERT(x) (добавить элемент x), FIND(x) (проверить наличие в множестве элемента x) и ERASE(x) (удалить из множества x).

Входные данные
В первой строке записано целое N (1 <= N <= 10^6) -- количество операций. Далее записаны сами операции парами чисел P, x (P обозначает номер операции). P = 0 для INSERT(x), P = 1 для FIND(x), P = 2 для ERASE(x).

Выходные данные
Для каждой операции FIND(x) выводите TRUE если элемент найден и FALSE в противном случае.

Пример

Ввод

8
0 0
0 3
1 1
0 1
1 1
1 0
2 0
1 0


Вывод

FALSE
TRUE
TRUE
FALSE
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
gamordzhoba
сообщение 3.12.2005 22:37
Сообщение #2


Гость






Помогите дореализовать программу.

текст:

program big_set;
type BigSet = array[0..12499999]of byte;
var BSet : BigSet;
x,n,i,k : integer;

procedure AddElement(x : integer);
begin
BSet[x div 8] := (BSet[x div 8]) or (1 shl (x mod 8));
end;

procedure RemoveElement(x : integer);
begin
BSet[x div 8] := (BSet[x div 8]) and not (1 shl (x mod 8));
end;

function FindElement(x : integer) : boolean;
begin
FindElement := boolean((BSet[x div 8]) and (1 shl (x mod 8)));
end;

begin
assign(input,'ga.in');
reset(input);
fillchar(BSet,sizeof(BSet),0);
readln(n);
for i := 1 to n do
begin
readln(k,x);
case k of
0 :AddElement(x);
1 :writeln(FindElement(x));
2 :RemoveElement(x);
end;
end;
end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 16:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"