File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.* ;
3+ import java.util.* ;
4+
5+ public class Main {
6+ public static void main (String [] args ) throws Exception {
7+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
8+ StringTokenizer st = new StringTokenizer (br. readLine());
9+
10+ int T = Integer . parseInt(st. nextToken());
11+ int W = Integer . parseInt(st. nextToken());
12+
13+ int [] tree = new int [T + 1 ];
14+ for (int i = 1 ; i <= T ; i++ ) {
15+ tree[i] = Integer . parseInt(br. readLine());
16+ }
17+
18+ int [][][] dp = new int [T + 1 ][W + 1 ][3 ];
19+
20+ for (int t = 1 ; t <= T ; t++ ) {
21+ for (int w = 0 ; w <= W ; w++ ) {
22+
23+ if (w == 0 ) {
24+ dp[t][0 ][1 ] = dp[t - 1 ][0 ][1 ] + (tree[t] == 1 ? 1 : 0 );
25+ } else {
26+ dp[t][w][1 ] = Math . max(dp[t - 1 ][w][1 ], dp[t - 1 ][w - 1 ][2 ]) + (tree[t] == 1 ? 1 : 0 );
27+ dp[t][w][2 ] = Math . max(dp[t - 1 ][w][2 ], dp[t - 1 ][w - 1 ][1 ]) + (tree[t] == 2 ? 1 : 0 );
28+ }
29+ }
30+ }
31+
32+ int answer = 0 ;
33+ for (int w = 0 ; w <= W ; w++ ) {
34+ answer = Math . max(answer, dp[T ][w][1 ]);
35+ answer = Math . max(answer, dp[T ][w][2 ]);
36+ }
37+
38+ System . out. println(answer);
39+ }
40+ }
41+ ```
You can’t perform that action at this time.
0 commit comments