90分,第7个测试点WA
查看原帖
90分,第7个测试点WA
517876
TaamZeonhei楼主2024/10/2 20:58

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;
}
2024/10/2 20:58
加载中...