効果の件名:列数、およびデジタルxがあり、この数字は(もちろん、掛けることができない)は、xを掛け、その後、最大のサブセグメントどのくらいあるかを尋ねている間、あなたは連続したシーケンス内の列の数この期間にすることができ、
実践:DP、あなたが知っています
書式#include <iostreamの> の#include <cstdioを> 使用して 名前空間はstdを、 長い 長い DP [ 3 ]、X、ANS。 int型のn; INT メイン(){ scanf関数(" %のD "、&N) cinを >> X; 長い 長いです。 以下のために(int型 i = 1 ; iが<= N; iは++ ){ CIN >> 。 DP [ 0 ] = MAX(0LL、DP [ 0 ] + A)。 DP [ 1 ] = MAX(DP [ 0]、DP [ 1 ] + X * A)。 DP [ 2 ] = MAX(DP [ 1 ]、DP [ 2 ] + A)。 ANS = MAX(ANS、DP [ 2 ])。 } COUT << ANS << ENDL。 リターン 0 ; }