关于第三篇tj
查看原帖
关于第三篇tj
404469
LJN1117楼主2023/9/24 16:18

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;
}
2023/9/24 16:18
加载中...