Решение задачи "Настя играет в компьютер" с Codeforces

Без пояснения   Просмотров: 11


Сделав уроки, Настя решила поиграть в компьютерную игру. На очередном уровне, Настя оказалась в комнате, полной чудовищ, из которой нужно как можно быстрее выйти. В комнате есть n люков, расположенных на одной прямой, но, к сожалению, все люки закрыты, да еще и сверху каждого люка лежит один камень. Под каждым люком лежит монетка, и чтобы пройти этот уровень, Насте нужно собрать все монетки. Изначально Настя стоит рядом с k-м по порядку слева люком и думает, что ей делать.

За один ход Настя может сделать одну из следующих операций:

если на люке, рядом с которым стоит Настя, есть хотя бы один камень, бросить ровно один камень с него на любой другой люк (да, Настя сильная);
перейти к соседнему люку;
если на люке, рядом с которым стоит Настя, не лежит камней, то Настя может открыть люк и взять оттуда монетку. После этого она должна немедленно закрыть люк (это не требует дополнительного хода).
На рисунке показано промежуточное состояние игры. В текущей позиции Настя может бросить камень на любой другой люк или переместиться влево или вправо к соседнему люку. Если бы она была рядом с крайним левым люком, она могла бы открыть его (так как на нем нет камней).
Собрав все монетки, Настя сможет покинуть комнату. Так как чудовища повсюду, скажите, сколько Насте нужно минимально сделать ходов, чтобы собрать все монетки.

Заметьте еще раз, что Настя может открыть люк только в том случае, если на нем не лежит ни одного камня.

Код

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,k;
	cin>>n>>k;
	cout<<3*n+min(k-1,n-k);
	return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться