我也是看了题解的思路自己写的,样例正确,但提交全WA
#include<cstdio>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
char c;
scanf("%c",&c);
for(;n;n--)
{
char s[1000001],t[2000001],min=127;
int i=0,j=-1,k=999999,l=1000000,md;
do
{
j++;
scanf("%c",s+j);
if(s[j]!='\n' && s[j]<=min)
{
min=s[j];
md=j;
}
}while(s[j]!='\n');
s[j]=0;
j--;
for(;md<=j && s[md]<=s[j];md++);
t[k--]=s[0];
for(i=1;i<md;i++)
{
if(s[i]>t[k+1])
t[l++]=s[i];
else
t[k--]=s[i];
}
for(i=k+1;i<l;i++)
{
for(;j>=md && s[j]<t[i];j--)
printf("%c",s[j]);
printf("%c",t[i]);
}
for(;j>=md;j--)
printf("%c",s[j]);
printf("\n");
}
return 0;
}