⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2241849_wa.cc

📁 北大大牛代码 1240道题的原代码 超级权威
💻 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 + -