1 条题解

  • 0
    @ 2026-7-4 11:54:23

    #include <cstdio>
    #include <iostream>
    using namespace std;
    const int M = 200005; 
    int read()
    {
    	int x=0,f=1;char c;
    	while((c=getchar())<'0' || c>'9') {if(c=='-') f=-1;}
    	while(c>='0' && c<='9') {x=(x<<3)+(x<<1)+(c^48);c=getchar();}
    	return x*f;
    }
    int n,k,a[M];char s[M];
    signed main()
    {
    	n=read();k=read();scanf("%s",s+1);
    	for(int i=1;i<=n;i++) a[i]=s[i]-'A';
    	int t=0,p=1;k=min(k,2*n+(k&1));
    	while(k--)
    	{
    		if(t^a[p]) t^=1,p=p%n+1;
    		else a[p]^=1;
    	}
    	for(int i=p;i<=n;i++) putchar((a[i]^t)?'B':'A');
    	for(int i=1;i<p;i++) putchar((a[i]^t)?'B':'A');
    }
    
    
    • 1

    信息

    ID
    8744
    时间
    2000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    1
    上传者