这是80分的代码
#include<bits/stdc++.h>
#define re register int
using namespace std;
int p1,p2,p3;
string a;
vector <char> v;
int main(){
cin>>p1>>p2>>p3>>a;
for(re i=0;i<a.length();i++){
v.push_back(a[i]);
if(a[i]=='-'){
if(i&&i<a.length()-1&&a[i+1]>a[i-1]&&(a[i-1]>='a'&&a[i-1]<='z'&&a[i+1]<='z'&&a[i+1]>='a')||(a[i-1]<='9'&&a[i-1]>='0'&&a[i+1]>='0'&&a[i+1]<='9')){
v.pop_back();
if(p3==1){
if(p1==3){
int num=p2*(a[i+1]-a[i-1]-1);
while(num--)v.push_back('*');
continue;
}
if(a[i-1]<='9'){
for(char iii=a[i-1]+1;iii<a[i+1];iii++){
int num=p2;
// cout<<iii;
while(num--)v.push_back(iii);
}
}
else {
for(char iii=a[i-1]+1;iii<a[i+1];iii++){
int num=p2;
char ii='0';
if(p1==1)ii=iii;
else ii=iii+'A'-'a';
while(num--)v.push_back(ii);
}
}
}
else{
if(p1==3){
int num=p2*(a[i+1]-a[i-1]-1);
while(num--)v.push_back('*');
continue;
}
if(a[i-1]<='9'){
for(char iii=a[i+1]-1;iii>=a[i-1]+1;iii--){
int num=p2;
while(num--)v.push_back(iii);
}
}
else {
for(char iii=a[i+1]-1;iii>=a[i-1]+1;iii--){
int num=p2;
char ii;
if(p1==1)ii=iii;
else ii=iii-'a'+'A';
while(num--)v.push_back(ii);
}
}
}
}
}
}
for(re i=0;i<v.size();i++)cout<<v[i];
return 0;
}
这是100分的代码,仅仅在第13行加了一个if语句
#include<bits/stdc++.h>
#define re register int
using namespace std;
int p1,p2,p3;
string a;
vector <char> v;
int main(){
cin>>p1>>p2>>p3>>a;
for(re i=0;i<a.length();i++){
v.push_back(a[i]);
if(a[i]=='-'){
if(i&&(i<a.length()-1)&&(a[i+1]>a[i-1])&&(a[i-1]>='a'&&a[i-1]<='z'&&a[i+1]<='z'&&a[i+1]>='a')||(a[i-1]<='9'&&a[i-1]>='0'&&a[i+1]>='0'&&a[i+1]<='9')){
if(a[i+1]>a[i-1])
v.pop_back();
if(p3==1){
if(p1==3){
int num=p2*(a[i+1]-a[i-1]-1);
while(num--)v.push_back('*');
continue;
}
if(a[i-1]<='9'){
for(char iii=a[i-1]+1;iii<a[i+1];iii++){
int num=p2;
// cout<<iii;
while(num--)v.push_back(iii);
}
}
else {
for(char iii=a[i-1]+1;iii<a[i+1];iii++){
int num=p2;
char ii='0';
if(p1==1)ii=iii;
else ii=iii+'A'-'a';
while(num--)v.push_back(ii);
}
}
}
else{
if(p1==3){
int num=p2*(a[i+1]-a[i-1]-1);
while(num--)v.push_back('*');
continue;
}
if(a[i-1]<='9'){
for(char iii=a[i+1]-1;iii>=a[i-1]+1;iii--){
int num=p2;
while(num--)v.push_back(iii);
}
}
else {
for(char iii=a[i+1]-1;iii>=a[i-1]+1;iii--){
int num=p2;
char ii;
if(p1==1)ii=iii;
else ii=iii-'a'+'A';
while(num--)v.push_back(ii);
}
}
}
}
}
}
for(re i=0;i<v.size();i++)cout<<v[i];
return 0;
}