CodeForces 1197D Yet Another Subarray Problem

回眸只為那壹抹淺笑 提交于 2020-05-05 16:25:58

<iframe src="https://vjudge.net/problem/description/117507" width="100%" height="900px" frameborder="0" scrolling="no" style="box-sizing: inherit; height: 1376.85px;"></iframe>

Time limit 2000 ms

Memory limit 262144 kB

Source Educational Codeforces Round 69 (Rated for Div. 2)

Tags dp greedy math *1900

Editorial Announcement (en) Tutorial #1 (en) Tutorial #2 (en) Tutorial #3 (ru)

##官方题解

<div><p>At first let's solve this problem when <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-123-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>m</mi><mo>=</mo><mn>1</mn></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1174" style="width: 3.404em; display: inline-block;"><span style="display: inline-block; position: relative; width: 2.667em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.477em, 1002.61em, 2.497em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1175"><span class="mi" id="MathJax-Span-1176" style="font-family: MathJax_Math-italic;">m</span><span class="mo" id="MathJax-Span-1177" style="font-family: MathJax_Main; padding-left: 0.286em;">=</span><span class="mn" id="MathJax-Span-1178" style="font-family: MathJax_Main; padding-left: 0.286em;">1</span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.068em; border-left: 0px solid; width: 0px; height: 1.004em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>m</mi><mo>=</mo><mn>1</mn></math></span></span><script type="math/tex" id="MathJax-Element-123">m = 1</script> and <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-124-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>k</mi><mo>=</mo><mn>0</mn></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1179" style="width: 2.951em; display: inline-block;"><span style="display: inline-block; position: relative; width: 2.327em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.477em, 1002.27em, 2.497em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1180"><span class="mi" id="MathJax-Span-1181" style="font-family: MathJax_Math-italic;">k</span><span class="mo" id="MathJax-Span-1182" style="font-family: MathJax_Main; padding-left: 0.286em;">=</span><span class="mn" id="MathJax-Span-1183" style="font-family: MathJax_Main; padding-left: 0.286em;">0</span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.068em; border-left: 0px solid; width: 0px; height: 1.075em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>k</mi><mo>=</mo><mn>0</mn></math></span></span><script type="math/tex" id="MathJax-Element-124">k = 0</script> (it is the problem of finding subarray with maximum sum). For each position from <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-125-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mn>1</mn></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1184" style="width: 0.683em; display: inline-block;"><span style="display: inline-block; position: relative; width: 0.513em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.477em, 1000.46em, 2.497em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1185"><span class="mn" id="MathJax-Span-1186" style="font-family: MathJax_Main;">1</span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.068em; border-left: 0px solid; width: 0px; height: 1.004em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>1</mn></math></span></span><script type="math/tex" id="MathJax-Element-125">1</script> to <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-126-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>n</mi></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1187" style="width: 0.796em; display: inline-block;"><span style="display: inline-block; position: relative; width: 0.626em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.647em, 1000.63em, 2.44em, -999.997em); top: -2.265em; left: 0em;"><span class="mrow" id="MathJax-Span-1188"><span class="mi" id="MathJax-Span-1189" style="font-family: MathJax_Math-italic;">n</span></span><span style="display: inline-block; width: 0px; height: 2.27em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.068em; border-left: 0px solid; width: 0px; height: 0.718em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>n</mi></math></span></span><script type="math/tex" id="MathJax-Element-126">n</script> we want to know the value of <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-127-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>m</mi><mi>a</mi><mi>x</mi><msub><mi>l</mi><mi>i</mi></msub><mo>=</mo><munder><mo form=&quot;prefix&quot;>max</mo><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mn>1</mn><mo>&amp;#x2264;</mo><mi>j</mi><mo>&amp;#x2264;</mo><mi>i</mi><mo>+</mo><mn>1</mn></mrow></munder><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy=&quot;false&quot;>(</mo><mi>j</mi><mo>,</mo><mi>i</mi><mo stretchy=&quot;false&quot;>)</mo></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1190" style="width: 13.665em; display: inline-block;"><span style="display: inline-block; position: relative; width: 10.83em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.42em, 1010.72em, 3.404em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1191"><span class="mi" id="MathJax-Span-1192" style="font-family: MathJax_Math-italic;">m</span><span class="mi" id="MathJax-Span-1193" style="font-family: MathJax_Math-italic;">a</span><span class="mi" id="MathJax-Span-1194" style="font-family: MathJax_Math-italic;">x</span><span class="msubsup" id="MathJax-Span-1195"><span style="display: inline-block; position: relative; width: 0.626em; height: 0px;"><span style="position: absolute; clip: rect(3.177em, 1000.29em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1196" style="font-family: MathJax_Math-italic;">l</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.286em;"><span class="mi" id="MathJax-Span-1197" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span><span class="mo" id="MathJax-Span-1198" style="font-family: MathJax_Main; padding-left: 0.286em;">=</span><span class="munderover" id="MathJax-Span-1199" style="padding-left: 0.286em;"><span style="display: inline-block; position: relative; width: 2.894em; height: 0px;"><span style="position: absolute; clip: rect(3.404em, 1001.87em, 4.198em, -999.997em); top: -4.022em; left: 0.513em;"><span class="mo" id="MathJax-Span-1200" style="font-family: MathJax_Main;">max</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; clip: rect(3.404em, 1002.84em, 4.425em, -999.997em); top: -3.399em; left: 0em;"><span class="texatom" id="MathJax-Span-1201"><span class="mrow" id="MathJax-Span-1202"><span class="mn" id="MathJax-Span-1203" style="font-size: 70.7%; font-family: MathJax_Main;">1</span><span class="mo" id="MathJax-Span-1204" style="font-size: 70.7%; font-family: MathJax_Main;">≤</span><span class="mi" id="MathJax-Span-1205" style="font-size: 70.7%; font-family: MathJax_Math-italic;">j</span><span class="mo" id="MathJax-Span-1206" style="font-size: 70.7%; font-family: MathJax_Main;">≤</span><span class="mi" id="MathJax-Span-1207" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span class="mo" id="MathJax-Span-1208" style="font-size: 70.7%; font-family: MathJax_Main;">+</span><span class="mn" id="MathJax-Span-1209" style="font-size: 70.7%; font-family: MathJax_Main;">1</span></span></span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span><span class="mi" id="MathJax-Span-1210" style="font-family: MathJax_Math-italic; padding-left: 0.173em;">s</span><span class="mi" id="MathJax-Span-1211" style="font-family: MathJax_Math-italic;">u</span><span class="mi" id="MathJax-Span-1212" style="font-family: MathJax_Math-italic;">m</span><span class="mo" id="MathJax-Span-1213" style="font-family: MathJax_Main;">(</span><span class="mi" id="MathJax-Span-1214" style="font-family: MathJax_Math-italic;">j</span><span class="mo" id="MathJax-Span-1215" style="font-family: MathJax_Main;">,</span><span class="mi" id="MathJax-Span-1216" style="font-family: MathJax_Math-italic; padding-left: 0.173em;">i</span><span class="mo" id="MathJax-Span-1217" style="font-family: MathJax_Main;">)</span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -1.211em; border-left: 0px solid; width: 0px; height: 2.218em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>m</mi><mi>a</mi><mi>x</mi><msub><mi>l</mi><mi>i</mi></msub><mo>=</mo><munder><mo form="prefix">max</mo><mrow class="MJX-TeXAtom-ORD"><mn>1</mn><mo>≤</mo><mi>j</mi><mo>≤</mo><mi>i</mi><mo>+</mo><mn>1</mn></mrow></munder><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy="false">(</mo><mi>j</mi><mo>,</mo><mi>i</mi><mo stretchy="false">)</mo></math></span></span><script type="math/tex" id="MathJax-Element-127">maxl_i = \max\limits_{1 \le j \le i + 1} sum(j, i)</script>, where <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-128-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy=&quot;false&quot;>(</mo><mi>l</mi><mo>,</mo><mi>r</mi><mo stretchy=&quot;false&quot;>)</mo><mo>=</mo><munderover><mo movablelimits=&quot;false&quot;>&amp;#x2211;</mo><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi>k</mi><mo>=</mo><mi>l</mi></mrow><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi>k</mi><mo>&amp;#x2264;</mo><mi>r</mi></mrow></munderover><msub><mi>a</mi><mi>k</mi></msub></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1218" style="width: 9.527em; display: inline-block;"><span style="display: inline-block; position: relative; width: 7.543em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(0.626em, 1007.54em, 3.518em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1219"><span class="mi" id="MathJax-Span-1220" style="font-family: MathJax_Math-italic;">s</span><span class="mi" id="MathJax-Span-1221" style="font-family: MathJax_Math-italic;">u</span><span class="mi" id="MathJax-Span-1222" style="font-family: MathJax_Math-italic;">m</span><span class="mo" id="MathJax-Span-1223" style="font-family: MathJax_Main;">(</span><span class="mi" id="MathJax-Span-1224" style="font-family: MathJax_Math-italic;">l</span><span class="mo" id="MathJax-Span-1225" style="font-family: MathJax_Main;">,</span><span class="mi" id="MathJax-Span-1226" style="font-family: MathJax_Math-italic; padding-left: 0.173em;">r</span><span class="mo" id="MathJax-Span-1227" style="font-family: MathJax_Main;">)</span><span class="mo" id="MathJax-Span-1228" style="font-family: MathJax_Main; padding-left: 0.286em;">=</span><span class="munderover" id="MathJax-Span-1229" style="padding-left: 0.286em;"><span style="display: inline-block; position: relative; width: 1.25em; height: 0px;"><span style="position: absolute; clip: rect(3.121em, 1001.02em, 4.425em, -999.997em); top: -4.022em; left: 0.116em;"><span class="mo" id="MathJax-Span-1230" style="font-family: MathJax_Size1; vertical-align: 0em;">∑</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; clip: rect(3.348em, 1001.14em, 4.311em, -999.997em); top: -3.115em; left: 0.06em;"><span class="texatom" id="MathJax-Span-1231"><span class="mrow" id="MathJax-Span-1232"><span class="mi" id="MathJax-Span-1233" style="font-size: 70.7%; font-family: MathJax_Math-italic;">k</span><span class="mo" id="MathJax-Span-1234" style="font-size: 70.7%; font-family: MathJax_Main;">=</span><span class="mi" id="MathJax-Span-1235" style="font-size: 70.7%; font-family: MathJax_Math-italic;">l</span></span></span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; clip: rect(3.291em, 1001.25em, 4.311em, -999.997em); top: -4.986em; left: 0em;"><span class="texatom" id="MathJax-Span-1236"><span class="mrow" id="MathJax-Span-1237"><span class="mi" id="MathJax-Span-1238" style="font-size: 70.7%; font-family: MathJax_Math-italic;">k</span><span class="mo" id="MathJax-Span-1239" style="font-size: 70.7%; font-family: MathJax_Main;">≤</span><span class="mi" id="MathJax-Span-1240" style="font-size: 70.7%; font-family: MathJax_Math-italic;">r</span></span></span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span><span class="msubsup" id="MathJax-Span-1241" style="padding-left: 0.173em;"><span style="display: inline-block; position: relative; width: 0.967em; height: 0px;"><span style="position: absolute; clip: rect(3.404em, 1000.51em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1242" style="font-family: MathJax_Math-italic;">a</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.513em;"><span class="mi" id="MathJax-Span-1243" style="font-size: 70.7%; font-family: MathJax_Math-italic;">k</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -1.354em; border-left: 0px solid; width: 0px; height: 3.361em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy="false">(</mo><mi>l</mi><mo>,</mo><mi>r</mi><mo stretchy="false">)</mo><mo>=</mo><munderover><mo movablelimits="false">∑</mo><mrow class="MJX-TeXAtom-ORD"><mi>k</mi><mo>=</mo><mi>l</mi></mrow><mrow class="MJX-TeXAtom-ORD"><mi>k</mi><mo>≤</mo><mi>r</mi></mrow></munderover><msub><mi>a</mi><mi>k</mi></msub></math></span></span><script type="math/tex" id="MathJax-Element-128">sum(l, r) = \sum\limits_{k = l}^{k \le r} a_k</script>, and <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-129-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy=&quot;false&quot;>(</mo><mi>x</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>x</mi><mo stretchy=&quot;false&quot;>)</mo><mo>=</mo><mn>0</mn></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1244" style="width: 9.867em; display: inline-block;"><span style="display: inline-block; position: relative; width: 7.826em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.42em, 1007.77em, 2.724em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1245"><span class="mi" id="MathJax-Span-1246" style="font-family: MathJax_Math-italic;">s</span><span class="mi" id="MathJax-Span-1247" style="font-family: MathJax_Math-italic;">u</span><span class="mi" id="MathJax-Span-1248" style="font-family: MathJax_Math-italic;">m</span><span class="mo" id="MathJax-Span-1249" style="font-family: MathJax_Main;">(</span><span class="mi" id="MathJax-Span-1250" style="font-family: MathJax_Math-italic;">x</span><span class="mo" id="MathJax-Span-1251" style="font-family: MathJax_Main; padding-left: 0.23em;">+</span><span class="mn" id="MathJax-Span-1252" style="font-family: MathJax_Main; padding-left: 0.23em;">1</span><span class="mo" id="MathJax-Span-1253" style="font-family: MathJax_Main;">,</span><span class="mi" id="MathJax-Span-1254" style="font-family: MathJax_Math-italic; padding-left: 0.173em;">x</span><span class="mo" id="MathJax-Span-1255" style="font-family: MathJax_Main;">)</span><span class="mo" id="MathJax-Span-1256" style="font-family: MathJax_Main; padding-left: 0.286em;">=</span><span class="mn" id="MathJax-Span-1257" style="font-family: MathJax_Main; padding-left: 0.286em;">0</span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.354em; border-left: 0px solid; width: 0px; height: 1.432em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy="false">(</mo><mi>x</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mn>0</mn></math></span></span><script type="math/tex" id="MathJax-Element-129">sum(x+1, x) = 0</script>. </p><p>We will calculate it the following way. <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-130-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>m</mi><mi>a</mi><mi>x</mi><msub><mi>l</mi><mi>i</mi></msub></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1258" style="width: 3.291em; display: inline-block;"><span style="display: inline-block; position: relative; width: 2.611em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.42em, 1002.61em, 2.611em, -999.997em); top: -2.265em; left: 0em;"><span class="mrow" id="MathJax-Span-1259"><span class="mi" id="MathJax-Span-1260" style="font-family: MathJax_Math-italic;">m</span><span class="mi" id="MathJax-Span-1261" style="font-family: MathJax_Math-italic;">a</span><span class="mi" id="MathJax-Span-1262" style="font-family: MathJax_Math-italic;">x</span><span class="msubsup" id="MathJax-Span-1263"><span style="display: inline-block; position: relative; width: 0.626em; height: 0px;"><span style="position: absolute; clip: rect(3.177em, 1000.29em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1264" style="font-family: MathJax_Math-italic;">l</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.286em;"><span class="mi" id="MathJax-Span-1265" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 2.27em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.282em; border-left: 0px solid; width: 0px; height: 1.218em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>m</mi><mi>a</mi><mi>x</mi><msub><mi>l</mi><mi>i</mi></msub></math></span></span><script type="math/tex" id="MathJax-Element-130">maxl_i</script> will be the maximum of two values: </p><ul> <li> <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-131-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mn>0</mn></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1266" style="width: 0.683em; display: inline-block;"><span style="display: inline-block; position: relative; width: 0.513em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.477em, 1000.46em, 2.497em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1267"><span class="mn" id="MathJax-Span-1268" style="font-family: MathJax_Main;">0</span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.068em; border-left: 0px solid; width: 0px; height: 1.004em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>0</mn></math></span></span><script type="math/tex" id="MathJax-Element-131">0</script> (because we can take segments of length <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-132-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mn>0</mn></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1269" style="width: 0.683em; display: inline-block;"><span style="display: inline-block; position: relative; width: 0.513em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.477em, 1000.46em, 2.497em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1270"><span class="mn" id="MathJax-Span-1271" style="font-family: MathJax_Main;">0</span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.068em; border-left: 0px solid; width: 0px; height: 1.004em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>0</mn></math></span></span><script type="math/tex" id="MathJax-Element-132">0</script>); </li><li> <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-133-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><msub><mi>a</mi><mi>i</mi></msub><mo>+</mo><mi>m</mi><mi>a</mi><mi>x</mi><msub><mi>l</mi><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi>i</mi><mo>&amp;#x2212;</mo><mn>1</mn></mrow></msub></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1272" style="width: 7.089em; display: inline-block;"><span style="display: inline-block; position: relative; width: 5.615em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.477em, 1005.62em, 2.724em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1273"><span class="msubsup" id="MathJax-Span-1274"><span style="display: inline-block; position: relative; width: 0.853em; height: 0px;"><span style="position: absolute; clip: rect(3.404em, 1000.51em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1275" style="font-family: MathJax_Math-italic;">a</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.513em;"><span class="mi" id="MathJax-Span-1276" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span><span class="mo" id="MathJax-Span-1277" style="font-family: MathJax_Main; padding-left: 0.23em;">+</span><span class="mi" id="MathJax-Span-1278" style="font-family: MathJax_Math-italic; padding-left: 0.23em;">m</span><span class="mi" id="MathJax-Span-1279" style="font-family: MathJax_Math-italic;">a</span><span class="mi" id="MathJax-Span-1280" style="font-family: MathJax_Math-italic;">x</span><span class="msubsup" id="MathJax-Span-1281"><span style="display: inline-block; position: relative; width: 1.533em; height: 0px;"><span style="position: absolute; clip: rect(3.177em, 1000.29em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1282" style="font-family: MathJax_Math-italic;">l</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.286em;"><span class="texatom" id="MathJax-Span-1283"><span class="mrow" id="MathJax-Span-1284"><span class="mi" id="MathJax-Span-1285" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span class="mo" id="MathJax-Span-1286" style="font-size: 70.7%; font-family: MathJax_Main;">−</span><span class="mn" id="MathJax-Span-1287" style="font-size: 70.7%; font-family: MathJax_Main;">1</span></span></span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.354em; border-left: 0px solid; width: 0px; height: 1.289em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>a</mi><mi>i</mi></msub><mo>+</mo><mi>m</mi><mi>a</mi><mi>x</mi><msub><mi>l</mi><mrow class="MJX-TeXAtom-ORD"><mi>i</mi><mo>−</mo><mn>1</mn></mrow></msub></math></span></span><script type="math/tex" id="MathJax-Element-133">a_i + maxl_{i-1}</script>. </li></ul><p>The maximum sum of some subarray is equal to <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-134-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><munder><mo form=&quot;prefix&quot;>max</mo><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mn>1</mn><mo>&amp;#x2264;</mo><mi>i</mi><mo>&amp;#x2264;</mo><mi>n</mi></mrow></munder><mi>m</mi><mi>a</mi><mi>x</mi><msub><mi>l</mi><mi>i</mi></msub></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1288" style="width: 6.069em; display: inline-block;"><span style="display: inline-block; position: relative; width: 4.821em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.42em, 1004.82em, 3.291em, -999.997em); top: -2.265em; left: 0em;"><span class="mrow" id="MathJax-Span-1289"><span class="munderover" id="MathJax-Span-1290"><span style="display: inline-block; position: relative; width: 2.1em; height: 0px;"><span style="position: absolute; clip: rect(3.404em, 1001.87em, 4.198em, -999.997em); top: -4.022em; left: 0.116em;"><span class="mo" id="MathJax-Span-1291" style="font-family: MathJax_Main;">max</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; clip: rect(3.404em, 1002.1em, 4.368em, -999.997em); top: -3.399em; left: 0em;"><span class="texatom" id="MathJax-Span-1292"><span class="mrow" id="MathJax-Span-1293"><span class="mn" id="MathJax-Span-1294" style="font-size: 70.7%; font-family: MathJax_Main;">1</span><span class="mo" id="MathJax-Span-1295" style="font-size: 70.7%; font-family: MathJax_Main;">≤</span><span class="mi" id="MathJax-Span-1296" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span class="mo" id="MathJax-Span-1297" style="font-size: 70.7%; font-family: MathJax_Main;">≤</span><span class="mi" id="MathJax-Span-1298" style="font-size: 70.7%; font-family: MathJax_Math-italic;">n</span></span></span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span><span class="mi" id="MathJax-Span-1299" style="font-family: MathJax_Math-italic; padding-left: 0.173em;">m</span><span class="mi" id="MathJax-Span-1300" style="font-family: MathJax_Math-italic;">a</span><span class="mi" id="MathJax-Span-1301" style="font-family: MathJax_Math-italic;">x</span><span class="msubsup" id="MathJax-Span-1302"><span style="display: inline-block; position: relative; width: 0.626em; height: 0px;"><span style="position: absolute; clip: rect(3.177em, 1000.29em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1303" style="font-family: MathJax_Math-italic;">l</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.286em;"><span class="mi" id="MathJax-Span-1304" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 2.27em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -1.139em; border-left: 0px solid; width: 0px; height: 2.075em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><munder><mo form="prefix">max</mo><mrow class="MJX-TeXAtom-ORD"><mn>1</mn><mo>≤</mo><mi>i</mi><mo>≤</mo><mi>n</mi></mrow></munder><mi>m</mi><mi>a</mi><mi>x</mi><msub><mi>l</mi><mi>i</mi></msub></math></span></span><script type="math/tex" id="MathJax-Element-134">\max\limits_{1\le i \le n} maxl_i</script>.</p><p>So, now we can calculate the values of <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-135-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub><mo>=</mo><munder><mo form=&quot;prefix&quot;>max</mo><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mn>0</mn><mo>&amp;#x2264;</mo><mi>l</mi><mi>e</mi><mi>n</mi><mo>,</mo><mi>i</mi><mo>&amp;#x2212;</mo><mi>l</mi><mi>e</mi><mi>n</mi><mo>&amp;#x22C5;</mo><mi>m</mi><mo>&amp;#x2265;</mo><mn>0</mn></mrow></munder><mo stretchy=&quot;false&quot;>(</mo><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy=&quot;false&quot;>(</mo><mi>i</mi><mo>&amp;#x2212;</mo><mi>l</mi><mi>e</mi><mi>n</mi><mo>&amp;#x22C5;</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>i</mi><mo stretchy=&quot;false&quot;>)</mo><mo>&amp;#x2212;</mo><mi>l</mi><mi>e</mi><mi>n</mi><mo>&amp;#x2217;</mo><mi>k</mi><mo stretchy=&quot;false&quot;>)</mo></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1305" style="width: 29.651em; display: inline-block;"><span style="display: inline-block; position: relative; width: 23.529em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.42em, 1023.42em, 3.404em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1306"><span class="mi" id="MathJax-Span-1307" style="font-family: MathJax_Math-italic;">b</span><span class="mi" id="MathJax-Span-1308" style="font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1309" style="font-family: MathJax_Math-italic;">s</span><span class="msubsup" id="MathJax-Span-1310"><span style="display: inline-block; position: relative; width: 0.683em; height: 0px;"><span style="position: absolute; clip: rect(3.234em, 1000.34em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1311" style="font-family: MathJax_Math-italic;">t</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.343em;"><span class="mi" id="MathJax-Span-1312" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span><span class="mo" id="MathJax-Span-1313" style="font-family: MathJax_Main; padding-left: 0.286em;">=</span><span class="munderover" id="MathJax-Span-1314" style="padding-left: 0.286em;"><span style="display: inline-block; position: relative; width: 5.558em; height: 0px;"><span style="position: absolute; clip: rect(3.404em, 1001.87em, 4.198em, -999.997em); top: -4.022em; left: 1.817em;"><span class="mo" id="MathJax-Span-1315" style="font-family: MathJax_Main;">max</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; clip: rect(3.348em, 1005.5em, 4.425em, -999.997em); top: -3.342em; left: 0em;"><span class="texatom" id="MathJax-Span-1316"><span class="mrow" id="MathJax-Span-1317"><span class="mn" id="MathJax-Span-1318" style="font-size: 70.7%; font-family: MathJax_Main;">0</span><span class="mo" id="MathJax-Span-1319" style="font-size: 70.7%; font-family: MathJax_Main;">≤</span><span class="mi" id="MathJax-Span-1320" style="font-size: 70.7%; font-family: MathJax_Math-italic;">l</span><span class="mi" id="MathJax-Span-1321" style="font-size: 70.7%; font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1322" style="font-size: 70.7%; font-family: MathJax_Math-italic;">n</span><span class="mo" id="MathJax-Span-1323" style="font-size: 70.7%; font-family: MathJax_Main;">,</span><span class="mi" id="MathJax-Span-1324" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span class="mo" id="MathJax-Span-1325" style="font-size: 70.7%; font-family: MathJax_Main;">−</span><span class="mi" id="MathJax-Span-1326" style="font-size: 70.7%; font-family: MathJax_Math-italic;">l</span><span class="mi" id="MathJax-Span-1327" style="font-size: 70.7%; font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1328" style="font-size: 70.7%; font-family: MathJax_Math-italic;">n</span><span class="mo" id="MathJax-Span-1329" style="font-size: 70.7%; font-family: MathJax_Main;">⋅</span><span class="mi" id="MathJax-Span-1330" style="font-size: 70.7%; font-family: MathJax_Math-italic;">m</span><span class="mo" id="MathJax-Span-1331" style="font-size: 70.7%; font-family: MathJax_Main;">≥</span><span class="mn" id="MathJax-Span-1332" style="font-size: 70.7%; font-family: MathJax_Main;">0</span></span></span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span><span class="mo" id="MathJax-Span-1333" style="font-family: MathJax_Main;">(</span><span class="mi" id="MathJax-Span-1334" style="font-family: MathJax_Math-italic;">s</span><span class="mi" id="MathJax-Span-1335" style="font-family: MathJax_Math-italic;">u</span><span class="mi" id="MathJax-Span-1336" style="font-family: MathJax_Math-italic;">m</span><span class="mo" id="MathJax-Span-1337" style="font-family: MathJax_Main;">(</span><span class="mi" id="MathJax-Span-1338" style="font-family: MathJax_Math-italic;">i</span><span class="mo" id="MathJax-Span-1339" style="font-family: MathJax_Main; padding-left: 0.23em;">−</span><span class="mi" id="MathJax-Span-1340" style="font-family: MathJax_Math-italic; padding-left: 0.23em;">l</span><span class="mi" id="MathJax-Span-1341" style="font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1342" style="font-family: MathJax_Math-italic;">n</span><span class="mo" id="MathJax-Span-1343" style="font-family: MathJax_Main; padding-left: 0.23em;">⋅</span><span class="mi" id="MathJax-Span-1344" style="font-family: MathJax_Math-italic; padding-left: 0.23em;">m</span><span class="mo" id="MathJax-Span-1345" style="font-family: MathJax_Main; padding-left: 0.23em;">+</span><span class="mn" id="MathJax-Span-1346" style="font-family: MathJax_Main; padding-left: 0.23em;">1</span><span class="mo" id="MathJax-Span-1347" style="font-family: MathJax_Main;">,</span><span class="mi" id="MathJax-Span-1348" style="font-family: MathJax_Math-italic; padding-left: 0.173em;">i</span><span class="mo" id="MathJax-Span-1349" style="font-family: MathJax_Main;">)</span><span class="mo" id="MathJax-Span-1350" style="font-family: MathJax_Main; padding-left: 0.23em;">−</span><span class="mi" id="MathJax-Span-1351" style="font-family: MathJax_Math-italic; padding-left: 0.23em;">l</span><span class="mi" id="MathJax-Span-1352" style="font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1353" style="font-family: MathJax_Math-italic;">n</span><span class="mo" id="MathJax-Span-1354" style="font-family: MathJax_Main; padding-left: 0.23em;">∗</span><span class="mi" id="MathJax-Span-1355" style="font-family: MathJax_Math-italic; padding-left: 0.23em;">k</span><span class="mo" id="MathJax-Span-1356" style="font-family: MathJax_Main;">)</span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -1.211em; border-left: 0px solid; width: 0px; height: 2.218em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub><mo>=</mo><munder><mo form="prefix">max</mo><mrow class="MJX-TeXAtom-ORD"><mn>0</mn><mo>≤</mo><mi>l</mi><mi>e</mi><mi>n</mi><mo>,</mo><mi>i</mi><mo>−</mo><mi>l</mi><mi>e</mi><mi>n</mi><mo>⋅</mo><mi>m</mi><mo>≥</mo><mn>0</mn></mrow></munder><mo stretchy="false">(</mo><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy="false">(</mo><mi>i</mi><mo>−</mo><mi>l</mi><mi>e</mi><mi>n</mi><mo>⋅</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>i</mi><mo stretchy="false">)</mo><mo>−</mo><mi>l</mi><mi>e</mi><mi>n</mi><mo>∗</mo><mi>k</mi><mo stretchy="false">)</mo></math></span></span><script type="math/tex" id="MathJax-Element-135">best_i = \max\limits_{0 \le len, i - len \cdot m \ge 0} (sum(i-len \cdot m + 1, i) - len * k)</script> the same way. </p><p><span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-136-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1357" style="width: 2.611em; display: inline-block;"><span style="display: inline-block; position: relative; width: 2.044em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.42em, 1002.04em, 2.611em, -999.997em); top: -2.265em; left: 0em;"><span class="mrow" id="MathJax-Span-1358"><span class="mi" id="MathJax-Span-1359" style="font-family: MathJax_Math-italic;">b</span><span class="mi" id="MathJax-Span-1360" style="font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1361" style="font-family: MathJax_Math-italic;">s</span><span class="msubsup" id="MathJax-Span-1362"><span style="display: inline-block; position: relative; width: 0.683em; height: 0px;"><span style="position: absolute; clip: rect(3.234em, 1000.34em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1363" style="font-family: MathJax_Math-italic;">t</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.343em;"><span class="mi" id="MathJax-Span-1364" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 2.27em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.282em; border-left: 0px solid; width: 0px; height: 1.218em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub></math></span></span><script type="math/tex" id="MathJax-Element-136">best_i</script> is the maximum of two values: </p><ul> <li> 0; </li><li> <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-137-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy=&quot;false&quot;>(</mo><mi>i</mi><mo>&amp;#x2212;</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>i</mi><mo stretchy=&quot;false&quot;>)</mo><mo>&amp;#x2212;</mo><mi>k</mi><mo>+</mo><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi>i</mi><mo>&amp;#x2212;</mo><mi>m</mi></mrow></msub></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1365" style="width: 17.52em; display: inline-block;"><span style="display: inline-block; position: relative; width: 13.892em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.42em, 1013.89em, 2.724em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1366"><span class="mi" id="MathJax-Span-1367" style="font-family: MathJax_Math-italic;">s</span><span class="mi" id="MathJax-Span-1368" style="font-family: MathJax_Math-italic;">u</span><span class="mi" id="MathJax-Span-1369" style="font-family: MathJax_Math-italic;">m</span><span class="mo" id="MathJax-Span-1370" style="font-family: MathJax_Main;">(</span><span class="mi" id="MathJax-Span-1371" style="font-family: MathJax_Math-italic;">i</span><span class="mo" id="MathJax-Span-1372" style="font-family: MathJax_Main; padding-left: 0.23em;">−</span><span class="mi" id="MathJax-Span-1373" style="font-family: MathJax_Math-italic; padding-left: 0.23em;">m</span><span class="mo" id="MathJax-Span-1374" style="font-family: MathJax_Main; padding-left: 0.23em;">+</span><span class="mn" id="MathJax-Span-1375" style="font-family: MathJax_Main; padding-left: 0.23em;">1</span><span class="mo" id="MathJax-Span-1376" style="font-family: MathJax_Main;">,</span><span class="mi" id="MathJax-Span-1377" style="font-family: MathJax_Math-italic; padding-left: 0.173em;">i</span><span class="mo" id="MathJax-Span-1378" style="font-family: MathJax_Main;">)</span><span class="mo" id="MathJax-Span-1379" style="font-family: MathJax_Main; padding-left: 0.23em;">−</span><span class="mi" id="MathJax-Span-1380" style="font-family: MathJax_Math-italic; padding-left: 0.23em;">k</span><span class="mo" id="MathJax-Span-1381" style="font-family: MathJax_Main; padding-left: 0.23em;">+</span><span class="mi" id="MathJax-Span-1382" style="font-family: MathJax_Math-italic; padding-left: 0.23em;">b</span><span class="mi" id="MathJax-Span-1383" style="font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1384" style="font-family: MathJax_Math-italic;">s</span><span class="msubsup" id="MathJax-Span-1385"><span style="display: inline-block; position: relative; width: 1.874em; height: 0px;"><span style="position: absolute; clip: rect(3.234em, 1000.34em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1386" style="font-family: MathJax_Math-italic;">t</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.343em;"><span class="texatom" id="MathJax-Span-1387"><span class="mrow" id="MathJax-Span-1388"><span class="mi" id="MathJax-Span-1389" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span class="mo" id="MathJax-Span-1390" style="font-size: 70.7%; font-family: MathJax_Main;">−</span><span class="mi" id="MathJax-Span-1391" style="font-size: 70.7%; font-family: MathJax_Math-italic;">m</span></span></span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.354em; border-left: 0px solid; width: 0px; height: 1.432em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy="false">(</mo><mi>i</mi><mo>−</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>i</mi><mo stretchy="false">)</mo><mo>−</mo><mi>k</mi><mo>+</mo><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mrow class="MJX-TeXAtom-ORD"><mi>i</mi><mo>−</mo><mi>m</mi></mrow></msub></math></span></span><script type="math/tex" id="MathJax-Element-137">sum(i - m + 1, i) - k + best_{i-m}</script>. </li></ul><p>After calculating all values <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-138-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1392" style="width: 2.611em; display: inline-block;"><span style="display: inline-block; position: relative; width: 2.044em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.42em, 1002.04em, 2.611em, -999.997em); top: -2.265em; left: 0em;"><span class="mrow" id="MathJax-Span-1393"><span class="mi" id="MathJax-Span-1394" style="font-family: MathJax_Math-italic;">b</span><span class="mi" id="MathJax-Span-1395" style="font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1396" style="font-family: MathJax_Math-italic;">s</span><span class="msubsup" id="MathJax-Span-1397"><span style="display: inline-block; position: relative; width: 0.683em; height: 0px;"><span style="position: absolute; clip: rect(3.234em, 1000.34em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1398" style="font-family: MathJax_Math-italic;">t</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.343em;"><span class="mi" id="MathJax-Span-1399" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 2.27em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.282em; border-left: 0px solid; width: 0px; height: 1.218em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub></math></span></span><script type="math/tex" id="MathJax-Element-138">best_i</script> we can easily solve this problem. At first, let's iterate over the elements <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-139-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1400" style="width: 2.611em; display: inline-block;"><span style="display: inline-block; position: relative; width: 2.044em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.42em, 1002.04em, 2.611em, -999.997em); top: -2.265em; left: 0em;"><span class="mrow" id="MathJax-Span-1401"><span class="mi" id="MathJax-Span-1402" style="font-family: MathJax_Math-italic;">b</span><span class="mi" id="MathJax-Span-1403" style="font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1404" style="font-family: MathJax_Math-italic;">s</span><span class="msubsup" id="MathJax-Span-1405"><span style="display: inline-block; position: relative; width: 0.683em; height: 0px;"><span style="position: absolute; clip: rect(3.234em, 1000.34em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1406" style="font-family: MathJax_Math-italic;">t</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.343em;"><span class="mi" id="MathJax-Span-1407" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 2.27em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.282em; border-left: 0px solid; width: 0px; height: 1.218em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub></math></span></span><script type="math/tex" id="MathJax-Element-139">best_i</script>. When we fix some element <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-140-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1408" style="width: 2.611em; display: inline-block;"><span style="display: inline-block; position: relative; width: 2.044em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.42em, 1002.04em, 2.611em, -999.997em); top: -2.265em; left: 0em;"><span class="mrow" id="MathJax-Span-1409"><span class="mi" id="MathJax-Span-1410" style="font-family: MathJax_Math-italic;">b</span><span class="mi" id="MathJax-Span-1411" style="font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1412" style="font-family: MathJax_Math-italic;">s</span><span class="msubsup" id="MathJax-Span-1413"><span style="display: inline-block; position: relative; width: 0.683em; height: 0px;"><span style="position: absolute; clip: rect(3.234em, 1000.34em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1414" style="font-family: MathJax_Math-italic;">t</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.343em;"><span class="mi" id="MathJax-Span-1415" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 2.27em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.282em; border-left: 0px solid; width: 0px; height: 1.218em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub></math></span></span><script type="math/tex" id="MathJax-Element-140">best_i</script>, lets iterate over the value <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-141-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>l</mi><mi>e</mi><mi>n</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>&amp;#x2026;</mo><mo>,</mo><mi>m</mi></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1416" style="width: 9.016em; display: inline-block;"><span style="display: inline-block; position: relative; width: 7.146em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.477em, 1007.15em, 2.667em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1417"><span class="mi" id="MathJax-Span-1418" style="font-family: MathJax_Math-italic;">l</span><span class="mi" id="MathJax-Span-1419" style="font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1420" style="font-family: MathJax_Math-italic;">n</span><span class="mo" id="MathJax-Span-1421" style="font-family: MathJax_Main; padding-left: 0.286em;">=</span><span class="mn" id="MathJax-Span-1422" style="font-family: MathJax_Main; padding-left: 0.286em;">1</span><span class="mo" id="MathJax-Span-1423" style="font-family: MathJax_Main;">,</span><span class="mn" id="MathJax-Span-1424" style="font-family: MathJax_Main; padding-left: 0.173em;">2</span><span class="mo" id="MathJax-Span-1425" style="font-family: MathJax_Main;">,</span><span class="mo" id="MathJax-Span-1426" style="font-family: MathJax_Main; padding-left: 0.173em;">…</span><span class="mo" id="MathJax-Span-1427" style="font-family: MathJax_Main; padding-left: 0.173em;">,</span><span class="mi" id="MathJax-Span-1428" style="font-family: MathJax_Math-italic; padding-left: 0.173em;">m</span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.282em; border-left: 0px solid; width: 0px; height: 1.289em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>l</mi><mi>e</mi><mi>n</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>…</mo><mo>,</mo><mi>m</mi></math></span></span><script type="math/tex" id="MathJax-Element-141">len = 1, 2, \dots, m</script> and update the answer with value <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-142-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub><mo>+</mo><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy=&quot;false&quot;>(</mo><mi>i</mi><mo>&amp;#x2212;</mo><mi>l</mi><mi>e</mi><mi>n</mi><mo>,</mo><mi>i</mi><mo>&amp;#x2212;</mo><mn>1</mn><mo stretchy=&quot;false&quot;>)</mo><mo>&amp;#x2212;</mo><mi>k</mi></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-1429" style="width: 16.613em; display: inline-block;"><span style="display: inline-block; position: relative; width: 13.155em; height: 0px; font-size: 126%;"><span style="position: absolute; clip: rect(1.42em, 1013.15em, 2.724em, -999.997em); top: -2.321em; left: 0em;"><span class="mrow" id="MathJax-Span-1430"><span class="mi" id="MathJax-Span-1431" style="font-family: MathJax_Math-italic;">b</span><span class="mi" id="MathJax-Span-1432" style="font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1433" style="font-family: MathJax_Math-italic;">s</span><span class="msubsup" id="MathJax-Span-1434"><span style="display: inline-block; position: relative; width: 0.683em; height: 0px;"><span style="position: absolute; clip: rect(3.234em, 1000.34em, 4.198em, -999.997em); top: -4.022em; left: 0em;"><span class="mi" id="MathJax-Span-1435" style="font-family: MathJax_Math-italic;">t</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span><span style="position: absolute; top: -3.852em; left: 0.343em;"><span class="mi" id="MathJax-Span-1436" style="font-size: 70.7%; font-family: MathJax_Math-italic;">i</span><span style="display: inline-block; width: 0px; height: 4.028em;"></span></span></span></span><span class="mo" id="MathJax-Span-1437" style="font-family: MathJax_Main; padding-left: 0.23em;">+</span><span class="mi" id="MathJax-Span-1438" style="font-family: MathJax_Math-italic; padding-left: 0.23em;">s</span><span class="mi" id="MathJax-Span-1439" style="font-family: MathJax_Math-italic;">u</span><span class="mi" id="MathJax-Span-1440" style="font-family: MathJax_Math-italic;">m</span><span class="mo" id="MathJax-Span-1441" style="font-family: MathJax_Main;">(</span><span class="mi" id="MathJax-Span-1442" style="font-family: MathJax_Math-italic;">i</span><span class="mo" id="MathJax-Span-1443" style="font-family: MathJax_Main; padding-left: 0.23em;">−</span><span class="mi" id="MathJax-Span-1444" style="font-family: MathJax_Math-italic; padding-left: 0.23em;">l</span><span class="mi" id="MathJax-Span-1445" style="font-family: MathJax_Math-italic;">e</span><span class="mi" id="MathJax-Span-1446" style="font-family: MathJax_Math-italic;">n</span><span class="mo" id="MathJax-Span-1447" style="font-family: MathJax_Main;">,</span><span class="mi" id="MathJax-Span-1448" style="font-family: MathJax_Math-italic; padding-left: 0.173em;">i</span><span class="mo" id="MathJax-Span-1449" style="font-family: MathJax_Main; padding-left: 0.23em;">−</span><span class="mn" id="MathJax-Span-1450" style="font-family: MathJax_Main; padding-left: 0.23em;">1</span><span class="mo" id="MathJax-Span-1451" style="font-family: MathJax_Main;">)</span><span class="mo" id="MathJax-Span-1452" style="font-family: MathJax_Main; padding-left: 0.23em;">−</span><span class="mi" id="MathJax-Span-1453" style="font-family: MathJax_Math-italic; padding-left: 0.23em;">k</span></span><span style="display: inline-block; width: 0px; height: 2.327em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.354em; border-left: 0px solid; width: 0px; height: 1.432em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>b</mi><mi>e</mi><mi>s</mi><msub><mi>t</mi><mi>i</mi></msub><mo>+</mo><mi>s</mi><mi>u</mi><mi>m</mi><mo stretchy="false">(</mo><mi>i</mi><mo>−</mo><mi>l</mi><mi>e</mi><mi>n</mi><mo>,</mo><mi>i</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo><mo>−</mo><mi>k</mi></math></span></span><script type="math/tex" id="MathJax-Element-142">best_i + sum(i - len, i - 1) - k</script>.</p></div>

##源代码

#include<stdio.h>
#include<algorithm>

int n,m,k;
long long a[300010];
long long dp[300010],ans;
int main()
{
	//freopen("test.in","r",stdin);
	scanf("%d%d%d",&n,&m,&k);
	for(int i=1;i<=n;i++) scanf("%lld",a+i),a[i]+=a[i-1];
	for(int i=1;i<=n;i++)
	{
		for(int j=i;j+m>=i;j--)
			dp[i]=std::max(dp[i],a[i]-a[j]);
		dp[i]-=k;
		dp[i]=std::max(0LL,dp[i]);
		if(i>m) dp[i]=std::max(dp[i],dp[i-m]+a[i]-a[i-m]-k);
		ans=std::max(dp[i],ans);
	}
	printf("%lld\n",ans);
	return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!