CCCPaste

Untitled

#include 

using namespace std;
int dp[200005][8];
int n;
string s;
int module=1000000007;
int rec(int i, int remainder){
    if((i==n)and(remainder==0)){
        return(1);
}
        if(i==n){
        return(0);
    }


    if(dp[i][remainder]!=-1){
        return(dp[i][remainder]);
        }

   int result=0;

   result+=rec(i+1, remainder);
   result+=rec(i+1, (remainder*10+(s[i]-'0'))%8);
   result%=module;

   dp[i][remainder]=result;
   return(result);
}
int main()
{

cin>>n;

cin>>s;

for(int i=0; i