感受到模拟的魅力了
#include <iostream>
#include <algorithm>
#include <string>
#include <cctype>
#include <cstring>
using namespace std;
string s, ret;
int p1, p2, p3;
int main() {
cin >> p1 >> p2 >> p3;
cin >> s;
int len = s.size();
for (int i = 0; i < len; ++i) {
if (s[i] != '-') ret += s[i];
else if (i == 0 || i == len - 1) ret += s[i];
else if (s[i - 1] >= s[i + 1] || (isdigit(s[i - 1]) && isalpha(s[i + 1])) || s[i - 1] == '-' || s[i + 1] == '-') ret += s[i];
else if (s[i - 1] + 1 == s[i + 1]) continue;
else {
string tmp = "";
for (char c = s[i - 1] + 1; c < s[i + 1]; ++c) {
for (int j = 1; j <= p2; ++j) {
if (p1 == 1) tmp += c;
else if (p1 == 2) tmp += toupper(c);
else tmp += "*";
}
}
if (p3 == 1) ret += tmp;
else{
reverse(tmp.begin(), tmp.end());
ret += tmp;
}
}
}
cout << ret;
return 0;
}