Guest User

Untitled

a guest
Mar 20th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. public static int MOD = 11380;
  2. public static int[][][][] memo = new int[11][11][11][31];
  3. static int ret;
  4.  
  5. public static int solve(int L1, int L2, int L3, int D) {
  6. if (D < 0) {
  7. return 0;
  8. }
  9. if (L1 + L2 + L3 == 0) {
  10. return 1;
  11. }
  12.  
  13. ret = memo[L1][L2][L3][D];
  14. if (ret == 0) {
  15. // ret = 0;
  16.  
  17. for (int i = 0; i < L1; ++i) {
  18. for (int j = 0; j <= L2; ++j) {
  19. for (int k = 0; k <= L3; ++k) {
  20. ret += solve(i, j, k, D - 1) *solve(L1 - 1 - i, L2 - j, L3 - k, D);
  21. ret %= MOD;
  22. }
  23. }
  24. }
  25.  
  26. for (int i = 0; i < L2; ++i) {
  27. for (int j = 0; j <= L3; ++j) {
  28. ret += solve(0, i, j, D - 1) * solve(L1, L2 - 1 - i, L3 - j, D);
  29. ret %= MOD;
  30. }
  31. }
  32.  
  33. for (int i = 0; i < L3; ++i) {
  34. ret += solve(0, 0, i, D - 1) * solve(L1, L2, L3 - 1 - i, D);
  35. ret%= MOD;
  36. }
  37. }
  38.  
  39. return ret;
  40. }
Add Comment
Please, Sign In to add comment