/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
int[] nums = {1, 5, 6, 1, 5, 1, 5};
int n = nums.length;
int[][][] dp = new int[n + 2][n + 2][4];
int sum1 = nums[n-1] + nums[n-2];
int sum2 = nums[1] + nums[2];
int sum3 = nums[1] + nums[n-1];
for(int i = 0; i < n - 1; i++){
int sum = nums[i] + nums[i+1];
int g = 1;
if(sum == sum1){
dp
[i
][i
+1][1] = Math.
max(g, dp
[i
][i
+1][1]); }
if(sum == sum2){
dp
[i
][i
+1][2] = Math.
max(g, dp
[i
][i
+1][2]); }
if(sum == sum3){
dp
[i
][i
+1][3] = Math.
max(g, dp
[i
][i
+1][3]); }
}
for(int len = 3; len <= n; len++){
for(int start = 0; start <= n - len; start++){
int end = start + len - 1;
int g = 1;
int sum = nums[start] + nums[start + 1];
if(sum == sum1){
dp
[start
][end
][1] = Math.
max(dp
[start
][end
][1], g
+ dp
[start
+ 2][end
][1]); }
if(sum == sum2){
dp
[start
][end
][2] = Math.
max(dp
[start
][end
][2], g
+ dp
[start
+ 2][end
][2]); }
if(sum == sum3){
dp
[start
][end
][3] = Math.
max(dp
[start
][end
][3], g
+ dp
[start
+ 2][end
][3]); }
sum = nums[end - 1] + nums[end];
if(sum == sum1){
dp
[start
][end
][1] = Math.
max(dp
[start
][end
][1], g
+ dp
[start
][end
- 2][1]); }
if(sum == sum2){
dp
[start
][end
][2] = Math.
max(dp
[start
][end
][2], g
+ dp
[start
][end
- 2][2]); }
if(sum == sum3){
dp
[start
][end
][3] = Math.
max(dp
[start
][end
][3], g
+ dp
[start
][end
- 2][3]); }
sum = nums[start] + nums[end];
if(sum == sum1){
dp
[start
][end
][1] = Math.
max(dp
[start
][end
][1], g
+ dp
[start
+ 1][end
- 1][1]); }
if(sum == sum2){
dp
[start
][end
][2] = Math.
max(dp
[start
][end
][2], g
+ dp
[start
+ 1][end
- 1][2]); }
if(sum == sum3){
dp
[start
][end
][3] = Math.
max(dp
[start
][end
][3], g
+ dp
[start
+ 1][end
- 1][3]); }
}
}
System.
out.
println(Math.
max(dp
[0][n
-1][1],
Math.
max(dp
[0][n
-1][2], dp
[0][n
-1][3])));
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlpbnRbXSBudW1zID0gezEsIDUsIDYsIDEsIDUsIDEsIDV9OwoJCQoJCWludCBuID0gbnVtcy5sZW5ndGg7CgkJaW50W11bXVtdIGRwID0gbmV3IGludFtuICsgMl1bbiArIDJdWzRdOwoJCQoJCWludCBzdW0xID0gbnVtc1tuLTFdICsgbnVtc1tuLTJdOwoJCWludCBzdW0yID0gbnVtc1sxXSArIG51bXNbMl07CgkJaW50IHN1bTMgPSBudW1zWzFdICsgbnVtc1tuLTFdOwoJCQoJCWZvcihpbnQgaSA9IDA7IGkgPCBuIC0gMTsgaSsrKXsKCQkJCgkJCWludCBzdW0gPSBudW1zW2ldICsgbnVtc1tpKzFdOwoJCQlpbnQgZyA9IDE7CgkJCQoJCWlmKHN1bSA9PSBzdW0xKXsKCQlkcFtpXVtpKzFdWzFdID0gTWF0aC5tYXgoZywgZHBbaV1baSsxXVsxXSk7CgkJfQoJCQoJCWlmKHN1bSA9PSBzdW0yKXsKCQlkcFtpXVtpKzFdWzJdID0gTWF0aC5tYXgoZywgZHBbaV1baSsxXVsyXSk7CgkJfQoJCQoJCWlmKHN1bSA9PSBzdW0zKXsKCQlkcFtpXVtpKzFdWzNdID0gTWF0aC5tYXgoZywgZHBbaV1baSsxXVszXSk7CgkJfQoJCQoJCX0KCQkKCQlmb3IoaW50IGxlbiA9IDM7IGxlbiA8PSBuOyBsZW4rKyl7CgkJCWZvcihpbnQgc3RhcnQgPSAwOyBzdGFydCA8PSBuIC0gbGVuOyBzdGFydCsrKXsKCQkJCWludCBlbmQgPSBzdGFydCArIGxlbiAtIDE7CgkJCQkKCQkJCWludCBnID0gMTsKCQkJCWludCBzdW0gPSBudW1zW3N0YXJ0XSArIG51bXNbc3RhcnQgKyAxXTsKCQkJCQoJCQkJaWYoc3VtID09IHN1bTEpewoJCQkJCWRwW3N0YXJ0XVtlbmRdWzFdID0gTWF0aC5tYXgoZHBbc3RhcnRdW2VuZF1bMV0sIGcgKyBkcFtzdGFydCArIDJdW2VuZF1bMV0pOwoJCQkJfQoJCQkJaWYoc3VtID09IHN1bTIpewoJCQkJCWRwW3N0YXJ0XVtlbmRdWzJdID0gTWF0aC5tYXgoZHBbc3RhcnRdW2VuZF1bMl0sIGcgKyBkcFtzdGFydCArIDJdW2VuZF1bMl0pOwoJCQkJfQoJCQkJaWYoc3VtID09IHN1bTMpewoJCQkJCWRwW3N0YXJ0XVtlbmRdWzNdID0gTWF0aC5tYXgoZHBbc3RhcnRdW2VuZF1bM10sIGcgKyBkcFtzdGFydCArIDJdW2VuZF1bM10pOwoJCQkJfQoJCQkJCgkJCQkKCQkJCXN1bSA9IG51bXNbZW5kIC0gMV0gKyBudW1zW2VuZF07CgkJCQkKCQkJCWlmKHN1bSA9PSBzdW0xKXsKCQkJCQlkcFtzdGFydF1bZW5kXVsxXSA9IE1hdGgubWF4KGRwW3N0YXJ0XVtlbmRdWzFdLCBnICsgZHBbc3RhcnRdW2VuZCAtIDJdWzFdKTsKCQkJCX0KCQkJCWlmKHN1bSA9PSBzdW0yKXsKCQkJCQlkcFtzdGFydF1bZW5kXVsyXSA9IE1hdGgubWF4KGRwW3N0YXJ0XVtlbmRdWzJdLCBnICsgZHBbc3RhcnRdW2VuZCAtIDJdWzJdKTsKCQkJCX0KCQkJCWlmKHN1bSA9PSBzdW0zKXsKCQkJCQlkcFtzdGFydF1bZW5kXVszXSA9IE1hdGgubWF4KGRwW3N0YXJ0XVtlbmRdWzNdLCBnICsgZHBbc3RhcnRdW2VuZCAtIDJdWzNdKTsKCQkJCX0KCQkJCQoJCQkJCgkJCQlzdW0gPSBudW1zW3N0YXJ0XSArIG51bXNbZW5kXTsKCQkJCQoJCQkJaWYoc3VtID09IHN1bTEpewoJCQkJCWRwW3N0YXJ0XVtlbmRdWzFdID0gTWF0aC5tYXgoZHBbc3RhcnRdW2VuZF1bMV0sIGcgKyBkcFtzdGFydCArIDFdW2VuZCAtIDFdWzFdKTsKCQkJCX0KCQkJCWlmKHN1bSA9PSBzdW0yKXsKCQkJCQlkcFtzdGFydF1bZW5kXVsyXSA9IE1hdGgubWF4KGRwW3N0YXJ0XVtlbmRdWzJdLCBnICsgZHBbc3RhcnQgKyAxXVtlbmQgLSAxXVsyXSk7CgkJCQl9CgkJCQlpZihzdW0gPT0gc3VtMyl7CgkJCQkJZHBbc3RhcnRdW2VuZF1bM10gPSBNYXRoLm1heChkcFtzdGFydF1bZW5kXVszXSwgZyArIGRwW3N0YXJ0ICsgMV1bZW5kIC0gMV1bM10pOwoJCQkJfQoJCQl9CgkJfQoJCQoJCVN5c3RlbS5vdXQucHJpbnRsbihNYXRoLm1heChkcFswXVtuLTFdWzFdLCBNYXRoLm1heChkcFswXVtuLTFdWzJdLCBkcFswXVtuLTFdWzNdKSkpOwoJCQoJfQp9