#include <iostream>
#include <cstring>
using namespace std;
char a[101], b[10001];
int p1, p2, p3;
int main()
{
cin >> p1 >> p2 >> p3;
cin >> a;
int len = strlen(a);
int j = 0;
for (int i = 0; i < len; i++)
{
if (a[i] != '-')
{
b[j] = a[i];
j++;
}
else if (i == 0 || i == len - 1)
{
b[j] = '-';
j++;
}
else if (a[i - 1] == '-' || a[i + 1] == '-')
{
b[j] = '-';
j++;
}
else if (a[i - 1] >= '0' && a[i - 1] <= '9' && ((a[i + 1] >= 'a' && a[i + 1] <= 'z') || (a[i + 1] >= 'A' && a[i + 1] <= 'Z')))
{
b[j] = '-';
j++;
}
else if (a[i - 1] >= a[i + 1])
{
b[j] = '-';
j++;
}
else if (p1 == 3)
{
for (int k = 0; k < a[i + 1] - a[i - 1] - 1; k++)
for (int l = 0; l < p2; l++)
{
b[j] = '*';
j++;
}
}
else if (a[i-1] >= '0' && a[i-1] <= '9')
{
if (p3 == 1) {
for (int k = 0; k < a[i + 1] - a[i - 1] - 1; k++)
for (int l = 0; l < p2; l++)
{
b[j] = a[i - 1] + k + 1;
j++;
}
}
if (p3 == 2) {
for (int k = 0; k < a[i + 1] - a[i - 1] - 1; k++)
for (int l = 0; l < p2; l++)
{
b[j] = a[i - 1] + a[i + 1] - a[i - 1] - k - 1;
j++;
}
}
}
else if (a[i - 1] >= 'a' && a[i - 1] <= 'z')
{
if (p1 == 1)
{
if (p3 == 1) {
for (int k = 0; k < a[i + 1] - a[i - 1] - 1; k++)
for (int l = 0; l < p2; l++)
{
b[j] = a[i - 1] + k + 1;
j++;
}
}
if (p3 == 2) {
for (int k = 0; k < a[i + 1] - a[i - 1] - 1; k++)
for (int l = 0; l < p2; l++)
{
b[j] = a[i - 1] + a[i + 1] - a[i - 1] - k - 1;
j++;
}
}
}
else
{
if (p3 == 1) {
for (int k = 0; k < a[i + 1] - a[i - 1] - 1; k++)
for (int l = 0; l < p2; l++)
{
b[j] = a[i - 1] + k + 1 - 32;
j++;
}
}
if (p3 == 2) {
for (int k = 0; k < a[i + 1] - a[i - 1] - 1; k++)
for (int l = 0; l < p2; l++)
{
b[j] = a[i - 1] + a[i + 1] - a[i - 1] - k - 1 - 32;
j++;
}
}
}
}
else if (a[i - 1] >= 'A' && a[i - 1] <= 'Z')
{
if (p1 == 1)
{
if (p3 == 1) {
for (int k = 0; k < a[i + 1] - a[i - 1] - 1; k++)
for (int l = 0; l < p2; l++)
{
b[j] = a[i - 1] + k + 1 + 32;
j++;
}
}
if (p3 == 2) {
for (int k = 0; k < a[i + 1] - a[i - 1] - 1; k++)
for (int l = 0; l < p2; l++)
{
b[j] = a[i - 1] + a[i + 1] - a[i - 1] - k - 1 + 32;
j++;
}
}
}
else
{
if (p3 == 1) {
for (int k = 0; k < a[i + 1] - a[i - 1] - 1; k++)
for (int l = 0; l < p2; l++)
{
b[j] = a[i - 1] + k + 1;
j++;
}
}
if (p3 == 2) {
for (int k = 0; k < a[i + 1] - a[i - 1] - 1; k++)
for (int l = 0; l < p2; l++)
{
b[j] = a[i - 1] + a[i + 1] - a[i - 1] - k - 1;
j++;
}
}
}
}
}
for (int i = 0; i < j; i++)
cout << b[i];
return 0;
}
洛谷P1098 字符串的展开
最新推荐文章于 2022-08-26 22:05:33 发布