哪位大佬帮忙看一下我的代码为什么会MLE!
#include <map>
#include <set>
#include <list>
#include <cmath>
#include <queue>
#include <stack>
#include <cstdio>
#include <vector>
#include <cstdlib>
#include <cstring>
#include <iomanip>
#include <iterator>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
const int N = 5e3 + 5;
const int MOD = 1e9 + 7;
const int INF = 0x3f3f3f3f;
LL n, len = 1, f[N][N];
void func(int x) {
for (LL i = 1; i <= len; ++i) {
f[x][i] = f[x - 1][i] + f[x - 2][i];
}
for (LL i = 1; i <= len; ++i) {
if (f[x][i] > 9) {
f[x][i + 1] += f[x][i] / 10;
f[x][i] %= 10;
}
}
if (f[x][len + 1]) {
++len;
}
}
int main(void) {
cin >> n;
f[1][1] = 1;
f[2][1] = 2;
for (LL i = 3; i <= n; ++i) {
func(i);
}
for (LL i = len; i; --i) {
cout << f[n][i];
}
cout << endl;
return 0;
}