Олимпиады по информатике (ХМАО - Югра)

   
 
Югорский НИИ ИТ, Югорский ФМЛ
Логин:   Пароль:    
 
   
 
Новости
О проекте
Регистрация
Гостевая книга
Форум
Архив задач
Состояние системы
Олимпиады
Работа в системе
Рейтинг
Новичкам
Методическое пособие
Дистанционное обучение
Дистрибутивы
Ссылки

















Торт

(Время: 1 сек. Память: 16 Мб Сложность: 6%)

При решении данной задачи нужно заметить тот факт, что когда мы разрезаем торт на четное количество кусков, то делаем разрез по диагонали, а иначе - по радиусу. Таким образом, при четном количестве разрезов их число уменьшается вдвое. В нечетном случае, как правило, мы делаем столько разрезов, сколько кусков хотим получить: например, если нужно получить 7 кусков, то необходимо сделать 7 разрезов в то время, когда при четном числе кусков 8 достаточно сделать всего 4 разреза. Поэтому для определения числа разрезов торта на n кусков достаточно проверить четность n и в положительном случае вывести n/2, либо n в нечетном случае. Но, несмотря на свою простоту, задача имеет "подводный камень", который заключается в случае, когда n=1. Многие при этом выводят 1, но правильно выводить 0, т.к. для разрезания торта на 1 кусок резать его вовсе не обязательно, т.к. торт сам по себе уже без разрезаний является одним куском! Рассмотренный алгоритм может быть представлен следующим образом:

  read(n)
  if(n mod 2=1 and n>1) write(n); else write(n div 2)

[Все попытки] [Задача]


 
     
Югорский НИИ ИТ, Югорский ФМЛ