SongList.java 857 B

1234567891011121314151617181920212223
  1. import java.util.Scanner;
  2. public class SongList {
  3. private static final int MOD = 1000000007;
  4. public static void main(String[] args) {
  5. try (Scanner scanner = new Scanner(System.in)) {
  6. int K = scanner.nextInt();
  7. int A = scanner.nextInt(), X = scanner.nextInt();
  8. int B = scanner.nextInt(), Y = scanner.nextInt();
  9. int[][] dp = new int[X + Y + 1][K + 1];
  10. dp[0][0] = 1; // !!important
  11. for (int i = 1; i <= X + Y; i++) {
  12. for (int j = 0; j <= K; j++) {
  13. dp[i][j] = dp[i - 1][j]; // Do not pick current song.
  14. int len = X < i ? B : A;
  15. if (len <= j) dp[i][j] = (dp[i][j] + dp[i - 1][j - len]) % MOD; // Pick
  16. }
  17. }
  18. System.out.println(dp[X + Y][K]);
  19. }
  20. }
  21. }