Форум: "Потрепаться";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
ВнизПопробуем провести небольшую олимпиаду Найти похожие ветки
← →
Mystic © (2004-06-01 12:39) [80]> Романов Р.В. © (01.06.04 12:12) [79]
Нахорошо ;) текст функции Test публиковался ранее, а теперь в него внесены изменения...
← →
Романов Р.В. © (2004-06-01 12:49) [81]Никто не говорил что он не будет изменен. Я даже предпологал его изменить воизбежание подобных трюков.
← →
Mystic © (2004-06-01 12:57) [82]Если условие олимпиады это посты с 0-го по 3-тий, то текст модуля OlimpShare входит в условие. Если же условие олимпиады это только первый пост, то не указана спецификация функций FindNum и GetName. К тому же не не оговаривалось то, что запрещены хакерские уловки. Поэтому судейство было нечестным ;)
← →
Романов Р.В. © (2004-06-01 13:26) [83]Условие олимпиады посты с 0-го по 1-вый. Текст модуля OlimpShare не входит в условие и приведен для того что бы участникам не отвлекаться на проверочные функции, а заниматься только разработкой алгоритма поиска.
← →
Mystic © (2004-06-01 13:41) [84]> Романов Р.В. © (01.06.04 13:26) [83]
А почему об этом только сейчас сказано?
← →
nikkie © (2004-06-01 13:48) [85]>Романов Р.В.
ну можешь требовать с Mike Kouzmine приз. он обещал :)
← →
Романов Р.В. © (2004-06-01 13:51) [86]Так нада... :)
Я же не буду 3 дня сидеть продумывать задание, а потом еще консультироваться с юристами по поводу разночтений исходного задания.
← →
Романов Р.В. © (2004-06-01 13:53) [87]
> nikkie
Я за идею работаю :)
← →
Mystic © (2004-06-01 15:10) [88]Я же не буду 3 дня сидеть продумывать задание, а потом еще консультироваться с юристами по поводу разночтений исходного задания.
В случае большого количества участников разночтения имеют место быть. Знаешь, как обидно, потратить два дня на решение не той задачи ;) Кроме того, нужно будет еще долго трудиться над созданием тестового модуля, чтобы исключить возможность прохода вот таких вот модулей:unit Olimp;
interface
function FindNum(): string;
function GetName(): string;
implementation
uses Windows, SysUtils, OlimpShare;
function GetName(): string;
begin
Result := "Mystic";
end;
type
PPCharArray = ^PCharArray;
PCharArray = ^TCharArray;
TCharArray = array[0..4] of Char;
const
MAX_COUNT = 999;
function FindNum(): string;
var
P: PPCharArray;
I: Integer;
CR: TChekResult;
begin
// Сохраняем значение стека
asm
MOV P, ESP
end;
// Ищем в стеке указатель на строку, состоящую из четырех цифр
for I := 0 to MAX_COUNT do
begin
if not IsBadReadPtr(P^, 5) then
begin
if (P^[4] = #0)
and (P^[0] in ["0".."9"])
and (P^[1] in ["0".."9"])
and (P^[2] in ["0".."9"])
and (P^[3] in ["0".."9"])
then
begin
CR := CheckNum(AnsiString(P^));
if CR.Plus = 4 then
begin
// С большой степенью вероятности это задуманное число
Result := AnsiString(P^);
Exit;
end;
end;
end;
PChar(P) := PChar(P) + 4;
end;
// Неудача --- тупо перебираем все значения.
for I := 0 to 9999 do
begin
CR := CheckNum(Format("%4d", [I]));
if CR.Plus = 4 then
begin
Result := Format("%4d", [I]);
Exit;
end;
end;
end;
end.
(какой он вернет результат???)
← →
Gero © (2004-06-01 21:50) [89]
> Mystic © (01.06.04 15:10)
Так у Вас syntax highlight кода JavaScript"ом производится или отдельной программой(типа pas2html)?
← →
Романов Р.В. © (2004-06-02 06:21) [90]Mystic ©
Хорошо к составлению заданий для следующей олимпиады подойду более ответственно.
А номер со стеком не пройдет. Можно устроить ловушку и забросить туда ложные данные. Можно изменить тип хранящихся данных или зашифровать. И наконец можно не хранить данные в стеке.
Обрашение ко всем.
Присылайте интересные задания по адресу RSoftComp<собака>mail.ru
Вторая олимпиада будет проведена в конце ИЮНЯ.
← →
Паниковский © (2004-06-02 06:28) [91]Романов Р.В.
Лови
← →
Паниковский © (2004-06-02 06:31) [92]Романов Р.В.
блин не, не лови книжка с диска куда то делась
Страницы: 1 2 3 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
Память: 0.61 MB
Время: 0.033 c