这个程序的字符串爆炸了……在更新一次之后就不会再更新了/kk
如果看不懂的话拜托dalao复制一下,输入样例,应该会更明白些QWQ
样例:
7 3
WBWBWBW
正确输出:
WWWWWWW
#include<bits/stdc++.h>
using namespace std;
int n,k,z;
string s[2];
inline int read()
{
int x=0,f=1;
char c=getchar();
while(c<'0' || c>'9')
{
if(c=='-') f=-1;
c=getchar();
}
while(c>='0' && c<='9')
{
x=(x<<1)+(x<<3)+(c^'0');
c=getchar();
}
return x*f;
}
signed main()
{
// freopen("P.in","r",stdin);
// freopen("P.out","w",stdout);
n=read();
k=read();
cin>>s[0];
s[1]=s[0];
int sh=1;
for(int i=1; i<=k; i++)
{
sh=sh^1;
for(int j=0; j<n; j++)
{
if(j==0)
{
if(s[sh][0]=='B' && s[sh][n-1]=='W' && s[sh][1]=='W')
{
s[sh^1][0]='W';
}
else if(s[sh][0]=='W' && s[sh][n-1]=='B' && s[sh][1]=='B')
{
s[sh^1][0]='B';
}
}
else if(j==n-1)
{
if(s[sh][n-1]=='B' && s[sh][0]=='W' && s[sh][n-2]=='W')
{
s[sh^1][n-1]='W';
}
else if(s[sh][n-1]=='W' && s[sh][0]=='B' && s[sh][n-2]=='B')
{
s[sh^1][n-1]='B';
}
}
else if(s[sh][j]=='B' && s[sh][j-1]=='W' && s[sh][j+1]=='W')
{
s[sh^1][j]='W';
}
else if(s[sh][j]=='W' && s[sh][j-1]=='B' && s[sh][j+1]=='B')
{
s[sh^1][j]='B';
}
}
cout<<i<<" "<<(sh^1)<<" "<<s[sh^1]<<"\n";
if(s[sh]==s[sh^1]) break;
}
cout<<s[sh];
return 0;
}
感谢各位大佬,拜托了(鞠躬