90分,第7个测试点WA,但是目测输出结果与该测试点答案无异。请各位大佬指正!
#include "iostream"
#include "string"
using namespace std;
bool ctg(char c){
if(c > 57) return false;
else if(c > 48) return true;
}
int capital(int p){
if(p == 1) return 0;
else return -32;
}
int main(){
int p1, p2, p3, i, ii = 1, iii, delta, l;
string s;
cin>>p1>>p2>>p3>>s;
char s_new[10000];
s_new[0] = s[0];
for(i = 1; i < s.size(); i++){
if((s[i] == '-' and s[i - 1] < s[i + 1]) and ctg(s[i - 1]) == ctg(s[i + 1])){
delta = s[i+1] - s[i-1] - 1;
l = delta * p2;
if(p1 == 3){
for(iii = 0; iii < l; iii++){
s_new[ii] = '*';
ii ++;
}
}
else if(p3 == 1){
for(iii = 1; iii <= l; iii++){
s_new[ii] = s[i - 1] + (iii + p2 - 1) / p2;
if(s[i - 1] > 57) s_new[ii] += capital(p1);
ii ++;
}
}
else{
for(iii = 1; iii <= l; iii++){
s_new[ii] = s[i + 1] - (iii + p2 - 1) / p2;
if(s[i - 1] > 57) s_new[ii] += capital(p1);
ii ++;
}
}
}
else{
s_new[ii] = s[i];
ii++;
}
}
for(i = 0; i < ii; i++) cout<<s_new[i];
return 0;
}