代码可能有点长,请见谅
#include<bits/stdc++.h>
using namespace std;
int main()
{
//freopen(".in", "r", stdin);
//freopen(".out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int p1, p2, p3;
string s, ans = "";
cin >> p1 >> p2 >> p3 >> s;
if(p3 == 1)
{
if(p1 == 1)
for(int i = 0; i < s.size(); i ++)
if(s[i] == '-')
if(((s[i - 1] >= '0' && s[i - 1] <= '9') && (s[i + 1] >= 'a' && s[i + 1] <= 'z')) || ((s[i - 1] >= 'a' && s[i - 1] <= 'z') && (s[i + 1] >= '0' && s[i + 1] <= '9')))
ans += s[i];
else if(s[i - 1] >= s[i + 1])
ans += s[i];
else
for(char j = s[i - 1] + 1; j < s[i + 1]; j ++)
for(int k = 1; k <= p2; k ++)
ans += j;
else
ans += s[i];
else if(p1 == 2)
for(int i = 0; i < s.size(); i ++)
if(s[i] == '-')
if(((s[i - 1] >= '0' && s[i - 1] <= '9') && (s[i + 1] >= 'a' && s[i + 1] <= 'z')) || ((s[i - 1] >= 'a' && s[i - 1] <= 'z') && (s[i + 1] >= '0' && s[i + 1] <= '9')))
ans += s[i];
else if(s[i - 1] >= s[i + 1])
ans += s[i];
else
for(char j = s[i - 1] + 31; j < s[i + 1] - 32; j ++)
for(int k = 1; k <= p2; k ++)
ans += j;
else
ans += s[i];
else
for(int i = 0; i < s.size(); i ++)
if(s[i] == '-')
if(((s[i - 1] >= '0' && s[i - 1] <= '9') && (s[i + 1] >= 'a' && s[i + 1] <= 'z')) || ((s[i - 1] >= 'a' && s[i - 1] <= 'z') && (s[i + 1] >= '0' && s[i + 1] <= '9')))
ans += s[i];
else if(s[i - 1] >= s[i + 1])
ans += s[i];
else
for(int j = s[i - 1] + 1; j < s[i + 1]; j ++)
for(int k = 1; k <= p2; k ++)
ans += '*';
else
ans += s[i];
}
else
{
if(p1 == 1)
for(int i = 0; i < s.size(); i ++)
if(s[i] == '-')
if(((s[i - 1] >= '0' && s[i - 1] <= '9') && (s[i + 1] >= 'a' && s[i + 1] <= 'z')) || ((s[i - 1] >= 'a' && s[i - 1] <= 'z') && (s[i + 1] >= '0' && s[i + 1] <= '9')))
ans += s[i];
else if(s[i - 1] >= s[i + 1])
ans += s[i];
else
for(char j = s[i + 1] - 1; j > s[i - 1]; j --)
for(int k = 1; k <= p2; k ++)
ans += j;
else
ans += s[i];
else if(p1 == 2)
for(int i = 0; i < s.size(); i ++)
if(s[i] == '-')
if(((s[i - 1] >= '0' && s[i - 1] <= '9') && (s[i + 1] >= 'a' && s[i + 1] <= 'z')) || ((s[i - 1] >= 'a' && s[i - 1] <= 'z') && (s[i + 1] >= '0' && s[i + 1] <= '9')))
ans += s[i];
else if(s[i - 1] >= s[i + 1])
ans += s[i];
else
for(char j = s[i + 1] - 33; j >= s[i - 1] + 32; j --)
for(int k = 1; k <= p2; k ++)
ans += j;
else
ans += s[i];
else
for(int i = 0; i < s.size(); i ++)
if(s[i] == '-')
if(((s[i - 1] >= '0' && s[i - 1] <= '9') && (s[i + 1] >= 'a' && s[i + 1] <= 'z')) || ((s[i - 1] >= 'a' && s[i - 1] <= 'z') && (s[i + 1] >= '0' && s[i + 1] <= '9')))
ans += s[i];
else if(s[i - 1] >= s[i + 1])
ans += s[i];
else
for(int j = s[i - 1] + 1; j < s[i + 1]; j ++)
for(int k = 1; k <= p2; k ++)
ans += '*';
else
ans += s[i];
}
cout << ans;
return 0;
}