Алгоритм игры с монетами [закрыто]

Позволять'играть в игру:

Рядов монет n стопок. i-й стек состоит из d_i монет. Два игрока: Player1, Player2 делают ходы попеременно. Игрок, в свою очередь, может взять только первый стек или последний стек или оба из них. Игра заканчивается, когда не осталось монет. Каждый игрок хочет иметь как можно больше монет в конце. Player1 запускается.

Мне было интересно узнать об алгоритме (звучит как жадный алгоритм), чтобы посчитать, сколько монет у каждого игрока в конце игры, когда обе играют оптимально.

Я непонятия не имею, как подойти к таким алгоритмам. Просто угадать стратегию или есть какой-то способ ее вывести? Или, может быть, этоСлишком странная проблема для реализации алгоритма?

Примеры (монеты в стопках с первого по n-й):

1, 100, 1 - у игроков есть 2 и 100 монет соответственно (к сожалению, первый игрок может взять только первый и последний стэк - второй игрок всегда получит стек с 100 монетами)

1, 1, 100, 1, 1, 5 - у игроков по 8 и 101 монет соответственно (я думаю, что это после оптимальной игры - сначала возьмите 5 и 1, затем второй - 1, чтобы не дать игроку 1 взять стек с 100 монетами. Если игрок 1 возьмите менее 6 монет за первый ход, у него всегда будет менее 8 монет).

Надеюсь, я достаточно уточнил проблему. Согласны ли вы, что это интересно? :) Кто-нибудь может помочь?