求优化,给出改法的赏关注qwq
错误信息(测试点15):
Wrong Answer.wrong answer Jury has better answer 87 instead of participant's 113 [n=200, k=2]
#include<bits/stdc++.h>
using namespace std;
string s;
long n,k;
bool panduan[100];
long temp[1000];
long baoliu[1000];
long ans;
char ch[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
int main()
{
cin>>n>>k;
cin>>s;
for(int i=0;i<n;i++)
{
temp[i]=s[i]-'A'+1;
baoliu[i]=s[i]-'A'+1;
}
if(k==2)
{
for(int i=0;i<n;i++)
{
if(temp[i]==1&&temp[i+2]==1)
{
temp[i+1]=2;
}
if(temp[i]==2&&temp[i]==2)
{
temp[i+1]=1;
}
if(temp[i]==1&&temp[i+1]==1)
{
temp[i]=2;
}
if(temp[i]==2&&temp[i+1]==2)
{
temp[i]=1;
}
if(temp[i]==2&&temp[i+1]==1&&temp[i+2]==1)
{
temp[i+2]=2;
}
}
}
else{
for(int i=1;i<n;i++)
{
for(int j=0;j<k;j++)
{
if(temp[i-1]==temp[i])
{
temp[i]++;
if(temp[i]>k)
{
temp[i]-=k;
}
}
}
}
}
for(int i=0;i<n;i++)
{
if(temp[i]!=baoliu[i])
{
ans++;
}
}
cout<<ans<<endl;
for(int i=0;i<n;i++)
{
cout<<ch[temp[i]-1];
}
return 0;
}