Информатика, опубликовано 2018-08-22 19:49:12 by Гость
Задача Z. Угадай число Имя входного файла: стандартный ввод Имя выходного файла: стандартный вывод Ограничение по времени: 2 секунды Ограничение по памяти: 256 мегабайт Это интерактивная задача. В процессе тестирования ваша программа будет взаимодействовать с программой жюри с использованием стандартных потоков ввода/вывода. Программа жюри загадала число от 1 до n, цель вашей программы — отгадать его. Для этого ваша программа сообщает свои догадки программе жюри, а программа жюри отвечает, является ли загаданное число большим, меньшим или равным сделанной догадке. Выполнено неравенство 1 ≤ n ≤ 109 . Ваша программа должна сделать не более 30 догадок. Протокол взаимодействия с программой жюри Сначала ваша программа должна прочитать из стандартного потока ввода число n. Затем протокол общения следующий: ваша программа выводит в стандартный поток вывода одну строку, содержащую число — свою догадку о загаданном числе. Делайте сброс буфера потока вывода после каждой догадки. Для этого используйте • flush(output) в паскале или Delphi; • fflush(stdout) или cout.flush() в С/C++; • System.out.flush() в Java. • sys.out.flush() в Python. После этого программа должна считать из стандартного потока ввода одно число: ответ программы жюри. Возможны следующие ответы: • 1 — загаданное число больше последней догадки; • −1 — загаданное число меньше последней догадки; • 0 — последняя догадка верна. Считав 0, ваша программа должна завершиться. Пример стандартный ввод стандартный вывод 5 -1 1 0 3 1 2
Ответ оставил Гость
Var
n, l, r, m, k: integer;
begin
read(n);
l := 1;
r := n;
while (r - l > 1) do
begin
m := (l + r) div 2;
writeln(m);
read(k);
if (k = 0) then
halt(0)
else if (k = 1) then
l := m
else
r := m;
end;
writeln(l);
read(k);
if (k 0) then
writeln(r);
end.
Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.
