求调,50分
查看原帖
求调,50分
1327341
yc6317楼主2025/1/2 20:36

Wa on 3,5,7,9,10;

#include<bits/stdc++.h>
using namespace std;
char upp(char s) {
    return s - 'a' + 'A';
}
bool isletter(char s) {
    return (('a' <= s && s <= 'z' ) || ('A' <= s && s <= 'Z'));
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int p1, p2, p3;
    cin >> p1 >> p2 >> p3;
    //2 3 2
    char a[110];
    cin >> a;
    int b = strlen(a);
    for(int i = 0; i < b; i++) {
        bool flag = false;
        if(a[i + 1] == '-') {
            if(isletter(a[i]) && isletter(a[i + 2]) && a[i] < a[i + 2]) {
                cout << a[i];
                flag = true;
                a[i + 1] = '\0';
                if(p3 == 1) {
                    if(p1 == 1) {
                        for(char j = a[i] + 1; j < a[i + 2] ; j++) {
                            for(int k = 1; k <= p2; k++) {
                                cout << j;
                            }
                        }
                    } else if(p1 == 2) {
                        for(char j = a[i] + 1; j < a[i + 2] ; j++) {
                            for(int k = 1; k <= p2; k++) {
                                cout << upp(j);
                            }
                        }
                    } else {
                        for(char j = a[i] + 1; j < a[i + 2] ; j++) {
                            for(int k = 1; k <= p2; k++) {
                                cout << '*';
                            }
                        }
                    }
                } else {
                    cout << a[i];
                    if(p1 == 1) {
                        for(char j = a[i + 2] - 1; j > a[i] ; j--) {
                            for(int k = 1; k <= p2; k++) {
                                cout << j;
                            }
                        }
                    } else if(p1 == 2) {
                        for(char j = a[i + 2] - 1; j > a[i] ; j--) {
                            for(int k = 1; k <= p2; k++) {
                                cout << upp(j);
                            }
                        }
                    } else {
                        for(char j = a[i + 2] - 1; j > a[i] ; j--) {
                            for(int k = 1; k <= p2; k++) {
                                cout << '*';
                            }
                        }
                    }
                }
            } else if(isdigit(a[i]) && isdigit(a[i + 2]) && a[i] < a[i + 2]) {
                flag = true;
                a[i + 1] = '\0';
                if(p3 == 1) {
                    if(p1 == 1 || p1 == 2) {
                        for(char j = a[i]; j < a[i + 2]; j++) {
                            for(int k = 1; k <= p2; k++) {
                                cout << j;
                            }
                        }
                    } else {
                        for(char j = a[i]; j < a[i + 2]; j++) {
                            for(int k = 1; k <= p2; k++) {
                                cout << '*';
                            }
                        }
                    }
                } else {
                    if(p1 == 1 || p1 == 2) {
                        for(char j = a[i + 2]; j > a[i]; j--) {
                            for(int k = 1; k <= p2; k++) {
                                cout << j;
                            }
                        }
                    } else {
                        for(char j = a[i + 2]; j > a[i]; j--) {
                            for(int k = 1; k <= p2; k++) {
                                cout << '*';
                            }
                        }
                    }
                }
            }
        }
        if(!flag) {
            if(a[i] != '\0') {
                cout << a[i];
            }
        }
    }
    return 0;
}
2025/1/2 20:36
加载中...