История
Версия для печати

Архив форума

Pavel 26.04.2005 23:10
Вопрос сводится к следующему: "Почему не прошла _такая-то_ задача?"

Если конкретно, то можно ли узнать
1) тест #10 задачи F1 (x^2+y^2=k mod p)
2) тест #6 задачи F2 (калькулятор)

Или к кому обратиться приватом?
Den Raskovalov 02.05.2005 14:11
F1 # 10

999982 999983
Heni 04.05.2005 11:24
F2 #6 мультитест и перебивать его полностью в форум не берусь.
Осмелюсь лишь предположить, что большинство программ неправильно вычисляют следующее выражение
/8;0
которое должно быть равным 0
Гость 04.05.2005 13:49
F2 #6 мультитест и перебивать его полностью в форум не берусь.
Осмелюсь лишь предположить, что большинство программ неправильно вычисляют следующее выражение
/8;0
которое должно быть равным 0
Pavel 04.05.2005 20:08
F1) Если задача предполагалась на динамику, то условие Prime(p) не нужно.
Я ее пытался решить используя теорию чисел(гоним x, считаем символ Лежандра, если 1 то гоним y). Здесь Prime(p) необходимо. Правда, я намудил, получил переполнение, и вследствие чего WA. Пришлось за последние полчаса писать заново динамикой.

F2) Почему то внешняя программка во время туре "висла" при попытке деления на 0. Мы решили, что не стоит полностью имитировать поведение программы(деление с помощью вычитания? :) ), и что такой тест не корректен.
Просьба на будущее, предлагать _формализованные_ задачи.
В условии даже не сказано какой вход корректен.
Сейчас попробовал несколько тестов.
"+" -- "1"
"/" -- "1"
";" -- "11"
"+;" -- "2"
"33/3" -- "333"
"1;(/8;0)" -- "10"
"2+3;45" -- "248"
Больше похоже на угадайку.
Александр Клепинин 05.05.2005 17:32
Цитата:
F2) Почему то внешняя программка во время туре "висла" при попытке деления на 0.
Она не висла. Было же ясно сказано, что на любом вводе программа работает не менее 30 секунд (реально, всегда 30). :)
Цитата:
Мы решили, что не стоит полностью имитировать поведение программы(деление с помощью вычитания? ), и что такой тест не корректен.
И не надо имитировать деление с помощью вычитания. Надо просто выполнить целочисленное деление, предварительно проверив, что делим не на 0. А если надо делить на 0, то результат тоже 0. Это легко можно было выяснить, путем запуска соответствующего теста.
Цитата:
Просьба на будущее, предлагать _формализованные_ задачи.
В условии даже не сказано какой вход корректен.
Задача вполне формализована. Сказано, какие символы допустимы. Сказаны общие принципы построения выражений. Предоставлено действующее(!) решение задачи. Надо было просто повторить логику.

На самом деле задача взята из реальной жизни (даже структура грамматики). В общем виде постановка задачи выглядит так. Работал программист. Написал нечто, что вроде бы даже работает. Документации не оставил (а зачем на это время тратить?). И уволился. Затем обнаружилась ошибка в его коде. Как исправить - непонятно. И возникает задача: в ситуации отсутствия формальной постановки и какой-либо документации написать новый модуль, который работает как уже существующий.

Эта задача на умение тестировать. И, к сожалению, судя по статистике этой техникой владеют лишь единицы. :(