Форум программистов, компьютерный форум CyberForum.ru

Задача с тимуса про сороконожку - C++

Восстановить пароль Регистрация
 
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
19.07.2014, 14:47     Задача с тимуса про сороконожку #1
У сороконожки 40 левых ножек и 40 правых ножек. Под кроватью у сороконожки a левых тапочек и b правых тапочек. Сороконожка, просыпаясь, надевает тапочки. Для этого она засовывает под кровать первую левую ножку и надевает первый попавшийся тапочек, тратя на это одну секунду. Если тапочек оказывается левым, то она переходит ко второй левой ножке. Если же он оказывается правым, она переодевает его на какую-нибудь необутую правую ножку, тратя ещё одну секунду, то есть всего на такой тапочек уходит две секунды. Если все правые ножки уже обуты, то она снимает тапочек и кидает его в угол комнаты, тратя на это одну секунду, то есть на такой тапочек сороконожка тратит также две секунды. Процесс продолжается до тех пор, пока все левые ножки не окажутся в левых тапочках. Затем сороконожка аналогичным образом начинает надевать правые тапочки, продолжая до тех пор, пока не будут обуты все правые ножки.
Сегодня сороконожка встала не с той ножки, поэтому она готовится к худшему. Несмотря на это, она, как обычно, начинает обуваться с левой ножки. Сколько секунд понадобится сороконожке на утреннее обувание?
Исходные данные
В единственной строке записаны целые числа a и b (40 ≤ a, b ≤ 100).
Результат
Выведите, сколько секунд понадобится в худшем случае сороконожке на утреннее обувание.

Вопрос - почему формула "2*b + 40" не работает? Ели она начинает с левой ножки, значит в худшем случае она переберет сначала все правые тапочки, наденет/выкинет, потом оденет все левые тапочки, а правые ножки уже будут обуты, разве нет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2014, 14:47     Задача с тимуса про сороконожку
Посмотрите здесь:

C++ задача с Тимуса
задача с Тимуса C++
Задача с тимуса C++
C++ Задача с тимуса
C++ Задача с Тимуса 1446
Олимпиадная задача с тимуса №1209 C++
C++ Задача с тимуса №1881
Задача про Петю и таксиста с тимуса C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
19.07.2014, 15:24     Задача с тимуса про сороконожку #2
Керра, скажи номер задачи.

Добавлено через 6 минут
нашел, 1876

Добавлено через 12 минут
я вижу ты сдал да уже? не нужно решение?

а насчет неправильности 2 * b + 40, бывает выгодней, оставить 1 неодетую правую ножку, чтобы потом все левые повыкидывать.

Добавлено через 4 минуты
О, вот даже так прошло!

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
#include <vector>
 
using namespace std;
 
typedef long long li;
 
int main()
{
    int a, b;
    cin >> a >> b;
    cout << max(2 * 39 + 40 + (a - 40) * 2 + 1, 2 * b + 40) << endl;
    return 0;
}
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
19.07.2014, 15:38  [ТС]     Задача с тимуса про сороконожку #3
ааа))) ясно
Yandex
Объявления
19.07.2014, 15:38     Задача с тимуса про сороконожку
Ответ Создать тему
Опции темы

Текущее время: 06:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru