这题...真没话说,老复杂了
by GXZJQ @ 2023-12-23 21:46:14
```cpp
#include "bits/stdc++.h"
using namespace std;
int p1, p2, p3;
bool isDight(char c) {
return c >= '0' && c <= '9';
}
bool isZiMu(char c) {
return c >= 'a' && c <= 'z';
}
char getSmall(char c) {
if (c >= 'a' && c <= 'z') return c;
return 'a' + (c - 'A');
}
char getBig(char c) {
if (c >= 'A' && c <= 'Z') return c;
return 'A' + (c - 'a');
}
string s;
int main() {
cin >> p1 >> p2 >> p3;
cin >> s;
for (int i = 0; i < s.size(); i++) {
if (s[i] != '-') {
cout << s[i];
continue;
}
if ((isDight(s[i - 1]) && isDight(s[i + 1])) ||
(isZiMu(s[i - 1]) && isZiMu(s[i + 1]))) {
if (s[i - 1] >= s[i + 1]) {
cout << s[i];
continue;
}
char lf = s[i - 1], ri = s[i + 1];
if (p3 == 1) {
if (p1 == 1) {
if (isZiMu(lf)==1) {
lf = getSmall(lf);
ri = getSmall(ri);
}
for (char c = lf + 1; c < ri; c++) {
for (int j = 0; j < p2; j++) cout << c ;
}
} else if (p1 == 2) {
if (isZiMu(lf)) {
lf = getBig(lf);
ri = getBig(ri);
}
for (char c = lf + 1; c < ri; c++) {
for (int j = 0; j < p2; j++) cout << c ;
}
} else if (p1 == 3) {
if (isZiMu(lf)) {
lf = getBig(lf);
ri = getBig(ri);
}
for (char c = lf + 1; c < ri; c++) {
for (int j = 0; j < p2; j++) cout << '*' ;
}
}
} else if (p3 == 2) {
if (p1 == 1) {
if (isZiMu(lf)) {
lf = getSmall(lf);
ri = getSmall(ri);
}
for (char c = ri - 1; c > lf; c--) {
for (int j = 0; j < p2; j++) cout << c ;
}
} else if (p1 == 2) {
if (isZiMu(lf)) {
lf = getBig(lf);
ri = getBig(ri);
}
for (char c = ri - 1; c > lf; c--) {
for (int j = 0; j < p2; j++) cout << c ;
}
} else if (p1 == 3) {
if (isZiMu(lf)) {
lf = getSmall(lf);
ri = getSmall(ri);
}
for (char c = ri - 1; c > lf; c--) {
for (int j = 0; j < p2; j++) cout << '*' ;
}
}
}
} else cout << s[i];
}
return 0;
}
```
by GXZJQ @ 2023-12-23 21:47:07
@[GXZJQ](/user/1088732) 你的貌似也很复杂
by ZackofZHOU @ 2023-12-23 22:11:54
[link(但是对我没有用)](https://www.luogu.com.cn/discuss/748847)
by albk_shbgp @ 2023-12-30 22:51:26
```
#include <bits/stdc++.h>
using namespace std;
int p1,p2,p3;
char s[105];
void p31(int l,int r)
{
for(char x=s[l]+1; x<s[r]; x++)
for(int j=1; j<=p2; j++)
if(p1==3)
{
cout<<'*';
}
else if(p1==1||(x>='0'&&x<='9'))
{
cout<<char(x);
}
else if(p1==2){
cout<<char(x-32);
}
}
void p32(int l,int r )
{
for(char x=s[l]-1; x>=s[r]+1; x--)
for(int j=0; j<p2; j++)if(p1==3)
{
cout<<'*';
}
else if(p1==1||(x>='0'&&x<='9'))
{
cout<<char(x);
}
else if(p1==2){
cout<<char(x-32);
}
}
int main()
{
cin>>p1>>p2>>p3;
cin>>s;
int len=strlen(s);
cout<<s[0];
for(int i=1; i<len; i++)
{
if(s[i] == '-'&&s[i-1]<s[i+1]&&i!=len-1&&s[i-1]!='-'&&s[i+1]!='-')
{
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'))
{
cout<<s[i];
}
else if(s[i-1]+1!=s[i+1]){
int c=s[i-1];
if(p3 == 1)
p31(i-1,i+1);
else if(p3 == 2)
p32(i+1,i-1);
cout<<s[i+1];
i++;
}
}
else
{
cout<<s[i];
}
}
return 0;
}
```
好像我比你们短很多(其实也就短了10几行)
by qusia_MC @ 2024-01-22 16:15:38
@[ZackofZHOU](/user/948216)
@[GXZJQ](/user/1088732)
by qusia_MC @ 2024-01-22 16:16:12