大概率是因为样例和用例1,2的首尾字母相同导致的。
#include <bits/stdc++.h>
using namespace std;
string a,b;int n,p,q[26][10000],r[26]{},co[26]{};
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n>>a>>p;for(char &c:a)c-='a';b.reserve(n);p=a[p-1];
for(int i=0;i<n;i++)co[a[i]]++;
for(int i=0;i<n;i++)for(int j=0;;j++)
if(co[j]){q[j][r[j]++]=a[i];co[j]--;break;}
b.push_back(q[p][0]);
while(--n)p=q[p][r[p]---1],b.push_back(p);
for(n=b.size()-1;n>=0;n--)cout<<(char)(b[n]+'a');
}
那个地方算是WA的原因
附用例
4
dabc
2
答案:abcd
错误答案:bcdd