/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param arr string字符串 
 * @return bool布尔型
 */
function AdditiveArray(arr) {
    // write code here
    function cal(arr) {
        var res = [arr[0], arr[1]];
        var sum = 0;
        var index = 2
        var basic = parseInt(arr.substring(0, 2)) + parseInt(arr.substring(2, 4))
        var arr3 = parseInt(arr.substring(4, 6))
        if (arr3 == basic && arr[2] != 0) {
            res = [parseInt(arr.substring(0, 2)), parseInt(arr.substring(2, 4))]
        } else {
            res = [arr[0], arr[1]];
        }
        var l = arr3 == basic ? 4 : 2
        for (let i = l; i < arr.length; i++) {
            var ressum = parseInt(res[index - 1]) + parseInt(res[index - 2])
            if (ressum < 10) {
                sum = parseInt(arr[i - 1]) + parseInt(arr[i - 2])
                index++
            } else {
                sum = parseInt(arr.substring(i, i + 2)) + parseInt(arr.substring(i + 2, i + 4))
                index++
            }
            if (sum < 10) {
                res.push(arr[i])
            } else {
                res.push(arr[i] + arr[i + 1])
                i = i + 1
            }
        }
        if (arr.length < 3 || res.length < 3) { return false }
        for (let i = 2; i < res.length; i++) {
            if (res[i] != parseInt(res[i - 1]) + parseInt(res[i - 2])) {
                return false
            }

        }
        return true
    }

    for (let i = 0; i < arr.length - 2; i++) {
        var newarr = arr.slice(i, arr.length)
        var mm = cal(newarr);
        if (mm) {
            return true

        }
        for (let j = i + 2; j < arr.length; j++) {
            var newarr2 = newarr.slice(i, j)
            var kk = cal(newarr2);
            if (kk && newarr2.length >3) {
                return true

            }

        }

    }
    return false
}
module.exports = {
    AdditiveArray : AdditiveArray
};