#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<iomanip>
#include<cstdlib>
#include<stdlib.h>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<stack>
#include<queue>
#include<deque>
using namespace std;
int p1, p2, p3;
string s;
int pd(char a){
if(a=='-'){
return 1;
}
if(a>='0'&&a<='9'){
return 2;
}
if(a>='a'&&a<='z'){
return 3;
}
}
int main() {
cin >> p1 >> p2 >> p3 >> s;
for (int i = 0; i < s.length(); i++) {
if (s[i] == '-') {
if (i != 0 && i != s.length() - 1) {
if (pd(s[i-1])!=pd(s[i+1])) {
cout << '-';
} else {
if (s[i - 1] >= s[i + 1]) {
cout << '-';
continue;
}
if (s[i - 1] >= 'a' && s[i - 1] <= 'z') {
if (p3 == 1) {
if (p1 == 1) {
for (char j = s[i - 1] + 1; j < s[i + 1]; j++) {
for (int k = 1; k <= p2; k++) cout << j;
}
} else if (p1 == 2) {
for (char j = s[i - 1] + 1; j < s[i + 1]; j++) {
for (int k = 1; k <= p2; k++){
char c=j-32;
cout<<c;
}
}
} else if (p1 == 3) {
for (char j = s[i - 1] + 1; j < s[i + 1]; j++) {
for (int k = 1; k <= p2; k++) cout << '*';
}
}
} else {
if (p1 == 1) {
for (char j = s[i + 1] - 1; j > s[i - 1]; j--) {
for (int k = 1; k <= p2; k++) cout << j;
}
} else if (p1 == 2) {
for (char j = s[i + 1] - 1 ; j > s[i - 1] ; j--) {
for (int k = 1; k <= p2; k++){
char c=j-32;
cout<<c;
}
}
} else if (p1 == 3) {
for (char j = s[i - 1] + 1; j < s[i + 1]; j++) {
for (int k = 1; k <= p2; k++) cout << '*';
}
}
}
continue;
}
if (s[i - 1] >= '0' && s[i - 1] <= '9') {
if (p3 == 1) {
if (p1 == 1) {
for (int j = s[i - 1] + 1; j < s[i + 1]; j++) {
for (int k = 1; k <= p2; k++) cout << j-48;
}
} else if (p1 == 2) {
for (int j = s[i - 1] + 1; j < s[i + 1]; j++) {
for (int k = 1; k <= p2; k++) cout << j-48;
}
} else if (p1 == 3) {
for (int j = s[i - 1] + 1; j < s[i + 1]; j++) {
for (int k = 1; k <= p2; k++) cout << '*';
}
}
} else {
if (p1 == 1) {
for (int j = s[i + 1] - 1; j > s[i - 1]; j--) {
for (int k = 1; k <= p2; k++) cout << j-48;
}
} else if (p1 == 2) {
for (int j = s[i + 1] - 1 ; j > s[i - 1] ; j++) {
for (int k = 1; k <= p2; k++) cout << j-48 ;
}
} else if (p1 == 3) {
for (char j = s[i - 1] + 1; j < s[i + 1]; j++) {
for (int k = 1; k <= p2; k++) cout << '*';
}
}
}
}
}
} else {
cout << '-';
}
} else {
cout << s[i];
}
}
return 0;
}
挺长的,不知道怎么优化了,感觉思路没问题 qwq