rt,看了第三篇tj,自己写了一份。
爆零了,TMD又臭又长,求调
#include<bits/stdc++.h>
#define int long long
#define maxn 410
using namespace std;
int n,k;
char c[maxn];
int a[maxn];
int ans_a=0,ans_b=0;
signed main(){
// freopen("kamencici.in","r",stdin);
// freopen("kamencici.out","w",stdout);
scanf("%lld %lld",&n,&k);
cin>>c;
for(int i=0;i<strlen(c);i++){
if(c[i]=='C') a[i+1]=1;
else a[i+1]=0;
}
// for(int i=1;i<=n;i++) printf("%lld ",a[i]);
int l=1,r=n;
int t=0;
while(l<=r){
t++;
if(t%2==1){
if(a[l]==0 && a[r]==1) l++;
else if(a[l]==1 && a[r]==0) r--;
else if(a[l]==1 && a[r]==1){
int lenl=0,lenr=0;
for(int i=l;i<=r;i++) if(a[i]==0) {lenl=i-l+1;break;}
for(int i=r;i>=l;i--) if(a[i]==0) {lenr=r-i+1;break;}
if(lenl<=lenr) r--,ans_a++;
else l++,ans_a++;
// printf("%lld %lld\n",lenl,lenr);
}
else{
int lenl=0,lenr=0;
for(int i=l;i<=r;i++) if(a[i]==1) {lenl=i-l+1;break;}
for(int i=r;i>=l;i--) if(a[i]==1) {lenr=r-i+1;break;}
if(lenl<=lenr) l++,ans_a++;
else r--,ans_a++;
// printf("%lld %lld\n",lenl,lenr);
}
}
else{
if(a[l]==0 && a[r]==1) l++;
else if(a[l]==1 && a[r]==0) r--;
else if(a[l]==1 && a[r]==1){
int lenl=0,lenr=0;
for(int i=l;i<=r;i++) if(a[i]==0) {lenl=i-l+1;break;}
for(int i=r;i>=l;i--) if(a[i]==0) {lenr=r-i+1;break;}
if(lenl<=lenr) r--,ans_b++;
else l++,ans_b++;
// printf("%lld %lld\n",lenl,lenr);
}
else{
int lenl=0,lenr=0;
for(int i=l;i<=r;i++) if(a[i]==1) {lenl=i-l+1;break;}
for(int i=r;i>=l;i--) if(a[i]==1) {lenr=r-i+1;break;}
if(lenl<=lenr) l++,ans_b++;
else r--,ans_b++;
// printf("%lld %lld\n",lenl,lenr);
}
}
if(ans_a==k){
printf("NE\n");
return 0;
}
if(ans_b==k){
printf("DA\n");
return 0;
}
}
return 0;
}