📄 2241849_wa.cc
字号:
# include <stdio.h>
# include <string.h>
# include <algorithm>
int len, p;
char com[2], w[10002];
struct node
{
bool p;
char tmp[10002];
}Str[10002];
void work()
{
int i, tt;
int next[10001], num[27], sum[27];
memset(num,0,sizeof(num));
for(i = 0; i < len; i++)
num[w[i]-'a']++;
sum[0] = 0;
for(i = 1; i < 27; i++)
sum[i] = sum[i-1]+num[i-1];
for(i = 0; i < len; i++)
{
next[sum[w[i]-'a']++] = i;
}
for(i = 0; i < len; i++)
if(next[i]==p-1)
{
tt = i;break;
// next[i] = next[0];
// next[0] = p-1;
}
// puts(w);
// for(i = 0; i < len; i++)
// printf("%d ",next[i]);
//printf("\n");
for(i = 0; i < len; i++)
{
printf("%c",w[next[tt]]);
tt = next[tt];
}
printf("\n");
}
bool cmp(struct node a,struct node b)
{
return strcmp(a.tmp,b.tmp)<0;
}
void input()
{
int i;
scanf("%s",com);
if(com[0]=='A')
{
scanf("%d%s",&len,Str[0].tmp);
Str[0].p = 0;
for(i = 1; i < len; i++)
Str[i].p = 0,strcpy(Str[i].tmp,&Str[i-1].tmp[1]),Str[i].tmp[len-1] = Str[i-1].tmp[0],Str[i].tmp[len] = '\0';
Str[1].p = 1;
std::sort(Str,Str+len,cmp);
for(i = 0; i < len; i++)
{
printf("%c",Str[i].tmp[len-1]);
if(Str[i].p)
p = i;
}
printf("\n%d\n",p+1);
}
else
{
scanf("%d%s%d",&len,w,&p);
work();
}
}
int main()
{
input();
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -