fork download
  1. class Main {
  2. public static void main(String[] args) {
  3. // Sample array
  4. int[] arr = {1, 2, 3, 4, 5, 6};
  5. int n = arr.length;
  6.  
  7. int start = 0;
  8. int end = n - 1;
  9. int turn = 1;
  10. boolean reversed = false;
  11.  
  12. int p1 = 0;
  13. int p2 = 0;
  14.  
  15. // Using '<=' ensures the last remaining single element is played
  16. while (start <= end) {
  17. int selected = 0;
  18.  
  19. if (turn % 2 != 0) { // Player 1's turn
  20. if (reversed == false) {
  21. p1 = p1 + arr[start];
  22. selected = arr[start];
  23. start++; // Consume from front
  24. } else {
  25. p1 = p1 + arr[end];
  26. selected = arr[end];
  27. end--; // Consume from back
  28. }
  29. } else { // Player 2's turn
  30. if (reversed == false) {
  31. p2 = p2 + arr[start];
  32. selected = arr[start];
  33. start++; // Consume from front
  34. } else {
  35. p2 = p2 + arr[end];
  36. selected = arr[end];
  37. end--; // Consume from back
  38. }
  39. }
  40.  
  41. // Reversal condition logic
  42. if (selected % 2 == 0) {
  43. if (reversed == false) {
  44. reversed = true;
  45. } else {
  46. reversed = false;
  47. }
  48. }
  49.  
  50. turn++;
  51. }
  52.  
  53. // Calculate the score difference
  54. int scoreDifference = p1 - p2;
  55.  
  56. System.out.println("Player 1 Score: " + p1);
  57. System.out.println("Player 2 Score: " + p2);
  58. System.out.println("Score Difference (P1 - P2): " + scoreDifference);
  59. }
  60. }
  61.  
Success #stdin #stdout 0.1s 53676KB
stdin
Standard input is empty
stdout
Player 1 Score: 11
Player 2 Score: 10
Score Difference (P1 - P2): 1