#include <iostream>
using namespace std;
int
sum[1001][1001], ans[1001][1001], n, stone[1001];
void
__read__()
{
cin >> n;
for( int i = 1; i <= n; i++ )
cin >> stone[i];
}
void
__init__()
{
for( int j = 1; j <= n; j++ )
for( int i = 1; i <= n - j + 1; i++ )
sum[j][i] = sum[j][i - 1] + stone[i + j - 1];
}
void
__outp__()
{
cout << ans[1][n];
}
void
__dpmax__()
{
memset( ans, 0, sizeof ans );
for( int i = 2; i <= n; i++ )
for( int j = 1; j <= n - i + 1; j++ )
for( int k = 1; k < i; k++ )
if( ans[j][k] + ans[j + k][i - k] + sum[j][i] > ans[j][i] )
ans[j][i] = ans[j][k] + ans[j + k][i - k] + sum[j][i];
__outp__();
}
void
__dpmin__()
{
memset( ans, 0, sizeof ans );
for( int i = 2; i <= n; i++ )
for( int j = 1; j <= n - i + 1; j++ )
{
ans[j][i] = 999999;
for( int k = 1; k < i; k++ )
if( ans[j][k] + ans[j + k][i - k] + sum[j][i] < ans[j][i] )
ans[j][i] = ans[j][k] + ans[j + k][i - k] + sum[j][i];
}
__outp__();
}
int
main()
{
__read__();
__init__();
__dpmin__();
cout << " ";
__dpmax__();
cout << endl;
return 0;
}