社区讨论
求调,50分
P1098[NOIP 2007 提高组] 字符串的展开参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m5fba4sj
- 此快照首次捕获于
- 2025/01/02 20:37 去年
- 此快照最后确认于
- 2025/01/03 13:30 去年
Wa on 3,5,7,9,10;
CPP#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;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...