fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int n;
  7. cin >> n; // 5
  8.  
  9. int b[n+1]; // 1-based indexing
  10. for(int i = 1; i <= n; i++)
  11. {
  12. // index 1 2 3 4 5
  13. cin >> b[i]; // 2 6 2 3 5
  14. }
  15.  
  16. int start = 1;
  17. int end = n;
  18.  
  19. bool reversed = false; // Initially, no reversal // In starting no Number is reversed so we declare it as false
  20. int turn = 0;
  21. int p1 = 0;
  22. int p2 = 0;
  23. int selected = 0;
  24.  
  25. while(start <= end)
  26. {
  27. if(turn % 2 == 0) // p1's turn
  28. {
  29. // if(3 % 2 == 0) // zero remainder not coming so it is false becoz odd number is coming
  30. // if(reversed == false)
  31. // p1 = p1 + b[3]
  32. //selected = b[3]
  33. //start++
  34. if(reversed == false) // Initially, no reversal // In starting no Number is reversed so we declare it as false
  35. {
  36. p1 = p1 + b[start];
  37. selected = b[start];
  38. start++;
  39. }
  40. else
  41. {
  42. p1 = p1 + b[end];
  43. selected = b[end];
  44. end--;
  45. }
  46. }
  47. else // p2's turn
  48. {
  49. if(reversed == false) // Initially, no reversal // In starting no Number is reversed so we declare it as false
  50. {
  51. p2 = p2 + b[start];
  52. selected = b[start];
  53. start++;
  54. }
  55. else
  56. {
  57. p2 = p2 + b[end];
  58. selected = b[end];
  59. end--;
  60. }
  61. }
  62.  
  63. // Reverse the direction if the selected number is even
  64. if(selected % 2 == 0)
  65. {
  66. reversed = !reversed;
  67. }
  68.  
  69. turn++;
  70. }
  71.  
  72. cout << "p1: "<< p1 << " p2: " << p2 << endl;
  73. }
  74.  
Success #stdin #stdout 0.01s 5292KB
stdin
Standard input is empty
stdout
p1: 934165020 p2: 889710592