C++代码问题,不知何处有误

题目内容:一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,共有多少种不同的路径?

img

输入:第一行M,第二行N
输出:路径条数
样例输入:1 14
样例输出:377
保证M<N,且M,N<=1000

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m,i,j; //我把M,N弄反了,应该不要紧
    cin>>n>>m;
    n=m-n+1;
    int f[1001][10001]={},len[1001]={};
    f[0][0]=1;
    f[1][0]=1;
    len[0]=1;
    len[1]=1;
    for(i=2;i<n;i++){
        int len1=len[i-1],len2=len[i-2];
        int len3=max(len1,len2);
        for(j=0;j<len3;j++){
            f[i][j]=f[i-1][j]+f[i-2][j];
        }
        if(f[i][len3-1]>=10){
            len[i]=len[i-1]+1;
        }else{
            len[i]=len[i-1];
        }
        for(j=0;j<len3;j++){
            f[i][j+1]+=f[i][j]/10%10;
            f[i][j]%=10;
        }
    }
    int k=len[n-1];
    for(i=k-1;i>=0;i--){
        cout<<f[n][i];
    }
    return 0;
}

main函数什么都没做,就给我返回了3221225725;

请问如何修改啊?

第7行数组定义太大,改小就可以运行了

现打代码处理
https://blog.csdn.net/weixin_62264287/article/details/122888069?spm=1001.2014.3001.5501