# Include <iostream> <br/> using namespace STD; <br/> int V [0, 1001] [31]; <br/> int main () <br/>{< br/> int T, W; <br/> scanf ("% d", & T, & W ); <br/> for (int t = 1; t <= T; ++ t) <br/>{< br/> int temp; <br/> scanf ("% d", & temp); <br/> // state transition equation: the maximum number of apples that can be captured w times before t minutes. V [T] [W] <br/> for (int w = 0; W <= W & W <= T; + + W) <br/> If (temp = 1 & W % 2 = 0 | temp = 2 & W % 2 = 1) <br/> // If the T-1 minutes when moving W steps in 1 tree, while temp = 1, or <br/> // If the t-1 is minutes away W steps in 2 trees, while temp = 2 <br/> V [T] [W] = V [T-1] [W] + 1; <br/> else if (W-1> = 0) <br/> // If the T-1 minutes when moving W steps in 2 trees, while temp = 1, or <br/> // If the T-1 minutes when moving W steps in 1 tree, while temp = 2, <br/> // divided into moving and not moving two situations: <br/> V [T] [W] = max (V [T-1] [W-1] + 1, V [T-1] [W]); <br/> else <br/> // else <br/> V [T] [W] = V [T-1] [W]; <br/>}< br/> printf ("% d/N", V [T] [W]); <br/> return 0; <br/>}