#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n; // 5
int b[n+1]; // 1-based indexing
for(int i = 1; i <= n; i++)
{
// index 1 2 3 4 5
cin >> b[i]; // 3 6 2 3 5
}
int start = 1;
int end = n;
bool reversed = false; // Initially, no reversal // In starting no Number is reversed so we declare it as false
int turn = 0;
int p1 = 0;
int p2 = 0;
int selected = 0;
while(start <= end)
{
if(turn % 2 == 0) // p1's turn
{
//Iteration 1 :
// 1st element we consider p1
// if(3 % 2 == 0) // zero remainder not coming so it is false becoz odd number is coming
// if(reversed == false)
// p1 = p1 + b[1]
//selected = b[1]
//start++
// Iteration 3: Now the array is -> 5, 3 , 2
// 3rd element we consider p1
// if(5 % 2 == 0) // zero remainder not coming so it is false becoz odd number
// if(reversed == false)
// p1 = p1 + b[3]
// selected = b[3]
// start++
// Iteration 5 : Now the array is -> 2
// 5th Element we consider p1
// if( 2 % 2 == 0) // zero remainder has came so it even number came it is true but the it is the last number so we cant reverse the operation
// here we stop the iteration and print the answer
// 3 + 5 + 2 = total -> 10
if(reversed == false) // Initially, no reversal // In starting no Number is reversed so we declare it as false
{
p1 = p1 + b[start];
selected = b[start];
start++;
}
else
{
p1 = p1 + b[end];
selected = b[end];
end--;
}
}
else // p2's turn
{
// Iteration 2: Now the array becomes 6 , 2 , 3 , 5
// 2nd Element we consider 6 as p2
// if(6 % 2 == 0) // Now zero remainder has came so it becomes true even number has come 6
//if(reversed == true)
// 6 = 6 + b[2]
// selected = b[2]
// start++
//Iteration 4: Now the array becomes -> 3 , 2
// 4th Element we consider 3 as p2
// if( 3 % 2 == 0) // Now zero remainder has not came so it becomes false it means odd number there
// if(reversed == false)
// 3 = 3 + b[4]
// selected = b[4]
//start++
// 6 + 3 = total -> 9
if(reversed == false) // Initially, no reversal // In starting no Number is reversed so we declare it as false
{
p2 = p2 + b[start];
selected = b[start];
start++;
}
else
{
p2 = p2 + b[end];
selected = b[end];
end--;
}
}
// Iteration 2: Even number has occured 6 , 2 , 3 , 5
// remove 6 and reverse the array -> 5 , 3 , 2
if(selected % 2 == 0) // Reverse the direction if the selected number is even
{
reversed = !reversed;
}
turn++;
}
cout << "p1 -> "<< p1 <<endl;
cout<<"p2 -> "<<p2 <<endl;
cout<<"p1 - p2 -> "<<p1-p2;
}