File tree Expand file tree Collapse file tree 1 file changed +53
-0
lines changed
Expand file tree Collapse file tree 1 file changed +53
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.util.* ;
3+
4+ public class Main {
5+ static final int MOD = 1000000003 ;
6+
7+ public static void main (String [] args ) {
8+ Scanner sc = new Scanner (System . in);
9+ int N = sc. nextInt();
10+ int K = sc. nextInt();
11+
12+ if (K * 2 > N ) {
13+ System . out. println(0 );
14+ return ;
15+ }
16+
17+ if (K == 1 ) {
18+ System . out. println(N );
19+ return ;
20+ }
21+
22+ long case1 = solve(N - 3 , K - 1 );
23+ long case2 = solve(N - 1 , K );
24+
25+ long answer = (case1 + case2) % MOD ;
26+ System . out. println(answer);
27+ }
28+
29+ static long solve (int n , int k ) {
30+ if (n < 0 || k < 0 ) return 0 ;
31+ if (k == 0 ) return 1 ;
32+ if (n < k) return 0 ;
33+ if (k * 2 - 1 > n) return 0 ;
34+
35+ long [][] dp = new long [n + 1 ][k + 1 ];
36+
37+ dp[0 ][0 ] = 1 ;
38+ if (n >= 1 ) {
39+ dp[1 ][0 ] = 1 ;
40+ dp[1 ][1 ] = 1 ;
41+ }
42+
43+ for (int i = 2 ; i <= n; i++ ) {
44+ dp[i][0 ] = 1 ;
45+ for (int j = 1 ; j <= Math . min(i, k); j++ ) {
46+ dp[i][j] = (dp[i - 1 ][j] + dp[i - 2 ][j - 1 ]) % MOD ;
47+ }
48+ }
49+
50+ return dp[n][k];
51+ }
52+ }
53+ ```
You can’t perform that action at this time.
0 commit comments