Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int MOD = 11380;
- public static int[][][][] memo = new int[11][11][11][31];
- static int ret;
- public static int solve(int L1, int L2, int L3, int D) {
- if (D < 0) {
- return 0;
- }
- if (L1 + L2 + L3 == 0) {
- return 1;
- }
- ret = memo[L1][L2][L3][D];
- if (ret == 0) {
- // ret = 0;
- for (int i = 0; i < L1; ++i) {
- for (int j = 0; j <= L2; ++j) {
- for (int k = 0; k <= L3; ++k) {
- ret += solve(i, j, k, D - 1) *solve(L1 - 1 - i, L2 - j, L3 - k, D);
- ret %= MOD;
- }
- }
- }
- for (int i = 0; i < L2; ++i) {
- for (int j = 0; j <= L3; ++j) {
- ret += solve(0, i, j, D - 1) * solve(L1, L2 - 1 - i, L3 - j, D);
- ret %= MOD;
- }
- }
- for (int i = 0; i < L3; ++i) {
- ret += solve(0, 0, i, D - 1) * solve(L1, L2, L3 - 1 - i, D);
- ret%= MOD;
- }
- }
- return ret;
- }
Add Comment
Please, Sign In to add comment