#include <bits/stdc++.h>
#define endl "\n"
#define mod 1000000007
using namespace std;
int dp[351][351][351][2];
string s;
int n,k;
bool solve(int l,int r,int a,int b,int u){
if(dp[l][r][a][u]!=-1) return dp[l][r][a][u];
if(u==0){
if((a+(s[l]=='C')<=k&&solve(l+1,r,a+(s[l]=='C'),b,u^1)==0)||(a+(s[r]=='C')<=k&&solve(l,r-1,a+(s[r]=='C'),b,u^1)==0)) return dp[l][r][a][u]=1;
return dp[l][r][a][u]=0;
}
else{
if((b+(s[l]=='C')<=k&&solve(l+1,r,a,b+(s[l]=='C'),u^1)==0)||(b+(s[r]=='C')<=k&&solve(l,r-1,a,b+(s[r]=='C'),u^1)==0)) return dp[l][r][a][u]=1;
return dp[l][r][a][u]=0;
}
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
memset(dp,-1,sizeof dp);
cin>>n>>k>>s;
if(solve(0,n-1,0,0,0)==1) cout<<"DA"<<endl;
else cout<<"NE"<<endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |