Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void main(String[] args) {
- Scanner sc = new Scanner("input.txt");
- int[] pos = new int[2];
- for (int i = 0; i < 2; i++)
- pos[i] = Integer.parseInt(sc.nextLine().split(": ")[1]) - 1;
- long[][][][] universes = new long[22][10][22][10];
- universes[0][pos[0]][0][pos[1]] = 1;
- for (int score1 = 0; score1 < 21; score1++) {
- for (int score2 = 0; score2 < 21; score2++) {
- for (int p1 = 0; p1 < 10; p1++) {
- for (int p2 = 0; p2 < 10; p2++) {
- for (int r1 = 1; r1 <= 3; r1++) {
- for (int r2 = 1; r2 <= 3; r2++) {
- for (int r3 = 1; r3 <= 3; r3++) {
- int nPos1 = (p1 + r1 + r2 + r3) % 10;
- if (score1 + nPos1 + 1 >= 21) {
- universes[Math.min(score1 + nPos1 + 1,
- 21)][nPos1][score2][p2] += universes[score1][p1][score2][p2];
- } else {
- for (int r4 = 1; r4 <= 3; r4++) {
- for (int r5 = 1; r5 <= 3; r5++) {
- for (int r6 = 1; r6 <= 3; r6++) {
- int nPos2 = (p2 + r4 + r5 + r6) % 10;
- universes[Math.min(score1 + nPos1 + 1, 21)][nPos1][Math.min(
- score2 + nPos2 + 1,
- 21)][nPos2] += universes[score1][p1][score2][p2];
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- long[] totalWins = new long[2];
- for (int p1 = 0; p1 < 10; p1++) {
- for (int p2 = 0; p2 < 10; p2++) {
- for (int score = 0; score < 21; score++) {
- totalWins[0] += universes[21][p1][score][p2];
- totalWins[1] += universes[score][p1][21][p2];
- }
- }
- }
- System.out.println(Math.max(totalWins[0], totalWins[1]));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement