/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 返回牛牛能吃到的最多糖果数
 * @param n long长整型 
 * @param k long长整型 
 * @return long长整型
 */
function Maximumcandies( n ,  k ) {
    // write code here
    return BigInt( Math.floor( (k-n) / (n+1) ) ).toString();
    let i = BigInt( Math.floor(k/(n+1))-1 );
    while( true ){
        let firendsGet = Math.floor( (k-parseInt(i)) /n );
        if( i>=firendsGet )
            break;
        i++;
    }
    i--;
    return parseInt( i );
}
module.exports = {
    Maximumcandies : Maximumcandies
};
/**
 * 
 * @param a long长整型 木棒的长度
 * @return int整型
 */
function stick( a ) {
    // write code here
    if( a<5 )
        return 0;
    let s = [1,1]
    while( true ){
        let next = s[s.length-1] + s[s.length-2];
        if( a>next ){
            s.push( next )
            a -= next;
        } else {
            break;
        }
    }
    return s.length;
}
module.exports = {
    stick : stick
};
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 
 * @param k int整型 表示完全k叉树的叉数k
 * @param a int整型一维数组 表示这棵完全k叉树的Bfs遍历序列的结点编号
 * @return long长整型
 */
function tree2( k ,  a ) {
    // write code here
    let arr = a.shift( 1 );
    let maxLen = k;
    while( a.length ){
        if( a.length>maxLen ){
            arr.push( a.splice( 0, maxLen ) );
            k = k * k;
        } else {
            arr.push( a.splice() );
        }
    }
    let sum = 0;
    arr.map((e,i)=>{
        if( i==0 )
            return true;
        e.map((item,itemIndex)=>{
            let p = 
        })
    })
}
module.exports = {
    tree2 : tree2
};