RT
记录
#include <bits/stdc++.h>
using namespace std;
#define il inline
#define N 15000001
int n, f[N], t[82], cnt;
char s[N];
const int P = 998244353;
int main(){
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
scanf ("%s", s + 1), n = strlen(s + 1);
f[0] = 1;
for (int i = 1, j = 1; i <= n; ++i){
while (cnt && j < i){
int p = s[j] - '0';
for (int k = j + 1; k <= i; ++k){
p += s[k] - '0';
if ((t[p]--) == 2) --cnt;
}++j;
}
int p = s[i + 1] - '0';
for (int k = i; k >= j; --k){
f[i] = f[i] + f[k - 1] > P ? f[i] + f[k - 1] - P : f[i] + f[k - 1];
p += s[k] - '0';
if ((++t[p]) == 2) ++cnt;
}
}cout << f[n];
return 0;
}