qwq
作者:
辉虚
,
2023-06-04 11:48:05
,
所有人可见
,
阅读 158
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int mod = 1e9+7;
int main()
{
string s;
cin >> s;
int n=s.size();
vector<long long> f(n+2);
vector<long long> f6(n+2);
f[0]=1;
if(s[0]=='6') f6[0]=1;
for(int i=1;i<n;i++){
if(s[i]=='1'){
f[i]=(f[i-1]*2+1-f6[i-1]+mod)%mod;
f6[i+1]=f6[i];
}else{
if(s[i]=='6')
f6[i]=(f[i-1]+f6[i-1]+1)%mod;
else f6[i+1]=f6[i];
f[i]=(f[i-1]*2+1)%mod;
}
}
cout << f[n-1] <<endl;
return 0;
}