{"code":"deque","name":"Phép toán với ngăn xếp hai đầu","description":"$Kaninho$ và $Henry$ chơi với nhau một trò chơi như sau:\r\n\r\nBan đầu, họ được cho một dãy số $a=(a_1,a_2,\\cdots,a_n)$. Họ lần lượt thực hiện phép toán dưới đây cho đến khi dãy $a$ rỗng, bắt đầu từ $Kaninho$:\r\n\r\nLoại bỏ phần tử đầu tiên hoặc cuối cùng của dãy $a$. Người chơi đó sẽ kiếm được $x$ điểm, với $x$ là phần tử bị loại bỏ.\r\nGọi $X$ và $Y$ lần lượt là số điểm của $Kaninho$ và $Henry$ sau khi trò chơi kết thúc. $Kaninho$ cố gắng làm $X−Y$ lớn nhất có thể, trong khi $Henry$ muốn $X−Y$ nhỏ nhất có thể.\r\n\r\nGiả sử cả hai người đều chơi tối ưu, tìm giá trị của $X−Y$.\r\n\r\n#### Input\r\n- Dòng thứ nhất chứa số nguyên $N(1 \\leq N \\leq 3000)$\r\n- Dòng thứ hai, chứa $n$ số nguyên $a_1,a_2,\\cdots,a_n(1 \\leq a_i \\leq 10^9)$\r\n\r\n#### Output\r\n- In ra giá trị cần tìm\r\n\r\n####Example\r\n!!! question \"Test 1\"\r\n    ???+ \"Input\"\r\n        ```sample\r\n        4\r\n        10 80 90 30 \r\n        ```\r\n    ???+ success \"Output\"\r\n        ```sample\r\n        10\r\n        ```\r\n    ??? warning \"Note\"\r\n\r\n        Quá trình chơi tối ưu của hai người chơi như sau:\r\n\r\n        - $Kaninho$:$(10,80,90,30)$→$(10,80,90)$\r\n        - $Henry$:$(10,80,90)$→$(10,80)$\r\n        - $Kaninho$:$(10,80)$→$(10)$\r\n        - $Henry$:$(10)$→$()$\r\n\r\n        Ở đây $X=30+80=110$ và $Y=90+10=100$","points":550.0,"partial":false,"time_limit":2.0,"memory_limit":262144,"short_circuit":false,"allowed_languages":[3,4,34,36,37,5,6,11,12,14,28,2,38,39,9,18,17,29,23,27,35,25,26,10,7,19,32,1,8,15,16,24,20,33,13,41,21,40],"is_public":true,"is_manually_managed":false,"permissions":{"can_edit":false}}