Advertisement
Guest User

Untitled

a guest
Dec 20th, 2021
890
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. public static void main(String[] args) {
  2. Scanner sc = new Scanner("input.txt");
  3. int[] pos = new int[2];
  4. for (int i = 0; i < 2; i++)
  5. pos[i] = Integer.parseInt(sc.nextLine().split(": ")[1]) - 1;
  6. long[][][][] universes = new long[22][10][22][10];
  7. universes[0][pos[0]][0][pos[1]] = 1;
  8. for (int score1 = 0; score1 < 21; score1++) {
  9. for (int score2 = 0; score2 < 21; score2++) {
  10. for (int p1 = 0; p1 < 10; p1++) {
  11. for (int p2 = 0; p2 < 10; p2++) {
  12. for (int r1 = 1; r1 <= 3; r1++) {
  13. for (int r2 = 1; r2 <= 3; r2++) {
  14. for (int r3 = 1; r3 <= 3; r3++) {
  15. int nPos1 = (p1 + r1 + r2 + r3) % 10;
  16. if (score1 + nPos1 + 1 >= 21) {
  17. universes[Math.min(score1 + nPos1 + 1,
  18. 21)][nPos1][score2][p2] += universes[score1][p1][score2][p2];
  19. } else {
  20. for (int r4 = 1; r4 <= 3; r4++) {
  21. for (int r5 = 1; r5 <= 3; r5++) {
  22. for (int r6 = 1; r6 <= 3; r6++) {
  23. int nPos2 = (p2 + r4 + r5 + r6) % 10;
  24. universes[Math.min(score1 + nPos1 + 1, 21)][nPos1][Math.min(
  25. score2 + nPos2 + 1,
  26. 21)][nPos2] += universes[score1][p1][score2][p2];
  27. }
  28. }
  29. }
  30. }
  31. }
  32. }
  33. }
  34. }
  35. }
  36. }
  37. }
  38. long[] totalWins = new long[2];
  39. for (int p1 = 0; p1 < 10; p1++) {
  40. for (int p2 = 0; p2 < 10; p2++) {
  41. for (int score = 0; score < 21; score++) {
  42. totalWins[0] += universes[21][p1][score][p2];
  43. totalWins[1] += universes[score][p1][21][p2];
  44. }
  45. }
  46. }
  47. System.out.println(Math.max(totalWins[0], totalWins[1]));
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement