#include <iostream>
#include <vector>
using namespace std;
void test1(){
unsigned a,b,n;
cin >> a >> b >> n;
if (a > b) {
int t = a;
a = b;
b = t;
}
int count = 0;
for (int i = b; i <= n; i++) {
if (i % a == 0 && i % b == 0) {
count ++;
}
}
cout << count << endl;
}
// 2 1 1 3 4 7 1 1 4
int getSelect(vector<int> nums,int index){
int select = 0;
if (nums.size() - index == 2) {
return 2;
}
if (nums.size() - index == 1) {
return 1;
}
if (nums.size() - index == 4) {
if (nums[index] + nums[index+1] > nums[index] + nums[index + 3]) {
return 2;
}else{
return 1;
}
}
if (nums.size() - index > 4) {
int resultA1 = nums[index] + nums[index + 1];
int resultA2 = nums[index];
int resultB1 = nums[index + 2] + nums[index + 3];
int resultB2 = nums[index+1] + nums[index + 2];
if (resultA1 - resultB1 > resultA2 - resultB2) {
select = 2;
}else{
select = 1;
}
}else{
select = 2;
}
return select;
}
bool test2(){
int n;
cin >> n;
vector<int> nums;
while (n-- > 0) {
int num;
cin >> num;
nums.push_back(num);
}
int aHigh = 0;
int bHigh = 0;
int count = nums.size();
int index = 0;
while (count - index > 0) {
int aSelect = getSelect(nums,index);
if (aSelect == 1) {
aHigh += nums[index];
}else{
aHigh += nums[index] + nums[index + 1];
}
index += aSelect;
int bSelect = getSelect(nums,index);
if (bSelect == 1) {
bHigh += nums[index];
}else{
bHigh += nums[index] + nums[index + 1];
}
index += bSelect;
}
return aHigh > bHigh;
}
int main(int argc, const char * argv[]) {
if (test2()) {
cout << "true";
}else{
cout << "false";
}
return 0;
}