atcoder.jp/contests/ty…
#include <bits/stdc++.h>
using namespace std;
const int M=1e9+7;
const string T="atcoder";
void add(int &a,int &b){
a+=b;
if(a>=M)a-=M;
}
int main(){
int n;string s;cin>>n>>s;
vector<vector<int>>dp(n+1,vector<int>(T.size()+1,0));
dp[0][0]=1;
for(int i=0;i<n;i++){
for(int j=0;j<=T.size();j++){
add(dp[i+1][j],dp[i][j]);
if(j<T.size()&&s[i]==T[j]){
add(dp[i+1][j+1],dp[i][j]);
}
}
}cout<<dp[n][T.size()];
}