社区讨论

40求条

P1098[NOIP 2007 提高组] 字符串的展开参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m2ndbyeh
此快照首次捕获于
2024/10/24 21:58
去年
此快照最后确认于
2024/10/25 00:12
去年
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int p1,p2,p3;
string s;
int main(){
    cin>>p1>>p2>>p3;
    cin>>s;
    for(int i=0;i<s.size();i++){
        if(s[i]!='-') {
            cout<<s[i];
            continue;
        }
        else if(s[i-1]=='-'||s[i+1]=='-'){
			cout<<'-';
			continue;
		}
        else if(s[i+1]<=s[i-1]){
            cout<<"-";
            continue;
        }
        else if(s[i+1]>='0' && s[i+1]<='9' && (s[i-1]<'0' || s[i-1])>'9'){
            cout<<"-";
            continue;
        }
        else if(s[i-1]>='0' && s[i-1]<='9' && (s[i+1]<'0' || s[i+1])>'9'){
            cout<<"-";
            continue;
        }
        else if(p1==3){
            for(int i=1;i<=(s[i+1]-s[i-1]-1)*p2;i++)
                    cout<<"*";
            continue;
        }
        else if(p3==1){
			for(int j=s[i-1]+1;j<=s[i+1]-1;j++){
                for(int k=1;k<=p2;k++){
                    if(p1==1)
                        cout<<char(j);
                    else
                        cout<<char(j-32);
                }
            }
            continue;
		}
		else if(p3==2){
            for(int j=s[i+1]-1;j>=s[i-1]+1;j--){
                for(int k=1;k<=p2;k++){
                    if(p1==1)
                        cout<<char(j);
                    else
                        cout<<char(j-32);
                }
            }
            continue;
		}
	}
    return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...