提交时间:2024-01-21 14:04:05
运行 ID: 120948
#include <bits/stdc++.h> using namespace std; string s, ans; int p1, p2, p3; signed main() { char buffer[1024]; scanf("%d%d%d", &p1, &p2, &p3); scanf("%s", buffer); s = string(buffer); for (int i=0; i<s.size(); i++) { if (i == 0 || i == s.size()-1) { ans += s[i]; continue; } if (s[i] != '-') { ans += s[i]; continue; } if (s[i+1]-s[i-1] < 1) { ans += s[i]; continue; } if (s[i+1]-s[i-1] == 1) continue; if (!(isdigit(s[i-1])&&isdigit(s[i+1])||(isalpha(s[i-1])&& isalpha(s[i+1])))){ ans += '-'; continue; } string adds; for (int j=s[i-1]+1; j<s[i+1]; j++) { char add; if (p1 == 1) add = tolower(j); if (p1 == 2) add = toupper(j); if (p1 == 3) add = '*'; for (int k=1; k<=p2; k++) { adds += add; } } if (p3 == 2) reverse(adds.begin(), adds.end()); ans += adds; } printf("%s", ans.c_str()); return 0; }