#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector <int> heights;
for(int i = 0; i < n; i++){
int a;
cin >> a;
heights.push_back(a);
}
int dp[n+1][n+1];
for(int i = 0; i <= n; i++){
for(int j = 0; j <= n; j++){
dp[i][j]=0;
}
}
for(int i = 1; i <=n; i++){
for(int j = 1; j <= i; j++){
dp[i][j] = dp[i-1][j];
}
for(int j = i+1; j <= n; j++){
dp[i][j] = max(dp[i][j-1], min(heights[j-1],heights[i-1]) * (j - i));
dp[i][j] = max(dp[i][j], dp[i-1][j]);
}
}
for(int i = 0; i <= n; i++){
for(int j = 0; j <= n; j++){
cout << dp[i][j] << " ";
}
cout << endl;
}
cout << dp[n][n];
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglpbnQgbjsKCWNpbiA+PiBuOwoJdmVjdG9yIDxpbnQ+IGhlaWdodHM7Cglmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKCQlpbnQgYTsgCgkJY2luID4+IGE7CgkJaGVpZ2h0cy5wdXNoX2JhY2soYSk7Cgl9CgkKCQoJaW50IGRwW24rMV1bbisxXTsKCWZvcihpbnQgaSA9IDA7IGkgPD0gbjsgaSsrKXsKCQlmb3IoaW50IGogPSAwOyBqIDw9IG47IGorKyl7CgkJCWRwW2ldW2pdPTA7CgkJfQoJfQoJCglmb3IoaW50IGkgPSAxOyBpIDw9bjsgaSsrKXsKCQlmb3IoaW50IGogPSAxOyBqIDw9IGk7IGorKyl7CgkJCWRwW2ldW2pdID0gZHBbaS0xXVtqXTsKCQl9CgkJZm9yKGludCBqID0gaSsxOyBqIDw9IG47IGorKyl7CgkJCWRwW2ldW2pdID0gbWF4KGRwW2ldW2otMV0sIG1pbihoZWlnaHRzW2otMV0saGVpZ2h0c1tpLTFdKSAqIChqIC0gaSkpOwoJCQlkcFtpXVtqXSA9IG1heChkcFtpXVtqXSwgZHBbaS0xXVtqXSk7CgkJfQoJfQoJCglmb3IoaW50IGkgPSAwOyBpIDw9IG47IGkrKyl7CgkJZm9yKGludCBqID0gMDsgaiA8PSBuOyBqKyspewoJCQljb3V0IDw8IGRwW2ldW2pdIDw8ICIgIjsKCQl9CgkJY291dCA8PCBlbmRsOwoJfQoJY291dCA8PCBkcFtuXVtuXTsKCQoJcmV0dXJuIDA7Cn0=