1981.cpp

来自「杭电 acm部分代码 有兴趣的可以下载 谢谢」· C++ 代码 · 共 69 行

CPP
69
字号
#include <iostream>
using namespace std;
int n, c, times;
struct pp
{
	char cmd;
	int start;
	int end;
}me[3010];
char sn[80010];
void change(int k)
{
	int i, t;
	char letter;
	t = 0;
	for(i = times - 1; i >= 0; i--)
	{
		if(me[i].cmd == 'R')
		{
			if(k >= me[i].start && k <= me[i].end)
			{
				k = me[i].start + me[i].end - k;
			}
		}			
		else 
		{
			if(k >= me[i].start && k <= me[i].end)
				t++;
		}
	}
	letter = sn[k];
	while(t--)
	{
		letter++;
		if(letter > 'z')
			letter = 'a';
	}
	printf("%c\n", letter);
}
int main()
{
	int test, a, b;
	char cc;
	scanf("%d", &test);
	while (test--)
	{
		times = 0;
		scanf("%d %d", &n, &c);
		scanf("%s", sn);
		while(c--)
		{
			scanf("\n%c", &cc);
			if(cc == 'Q')
			{
				scanf("%d", &a);
				change(a - 1);	
			}
			else
			{
				scanf("%d %d", &a, &b);
				me[times].cmd = cc;
				me[times].start = a - 1;
				me[times].end = b - 1;
				times++;
			}
		}
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?