记录编号 418996 评测结果 AAAAAAAAAA
题目名称 [NOIP 2007]字符串的展开 最终得分 100
用户昵称 GravatarHyoi_0Koto 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2017-07-02 08:07:51 内存使用 0.00 MiB
显示代码纯文本
#include<cstdio>
#include<cctype>
#include<queue>
#include<cstring>
using namespace std;
int p1,p2,p3,l;
char c[101];
queue<char> q;
inline void in(int &x){
    x=0;int f=1;char c=getchar();
    while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
    while(isdigit(c)){x=x*10+c-48;c=getchar();}
    x*=f;
}
inline void out(int x){//负数不可 
	char c[10]={0};
	while(c[++c[0]]=x%10+'0',x/=10,x);
	while(putchar(c[c[0]]),--c[0],c[0]);
}
inline int mian(){
	freopen("expand.in","r",stdin);
    freopen("expand.out","w",stdout);
    in(p1);in(p2);in(p3);
    scanf("%s",c+1);l=strlen(c+1);
    for(int i=1;i<=l;i++){
    	if(c[i]!='-'||i==1||i==l){
    		q.push(c[i]);continue;
		}
		if(c[i]=='-'&&c[i-1]!='-'&&c[i+1]!='-'&&isdigit(c[i-1])==isdigit(c[i+1])&&c[i-1]<c[i+1]){
			if(p1==1||(p1==2&&isdigit(c[i-1]))){
				if(p3==1){
					for(int j=c[i-1]+1;j<c[i+1];j++)
						for(int k=1;k<=p2;k++)
							q.push(j);
				}else{
					for(int j=c[i+1]-1;j>c[i-1];j--)
						for(int k=1;k<=p2;k++)
							q.push(j);
				}
			}
			if(p1==2&&(!isdigit(c[i-1]))){
				if(p3==1){
					for(int j=c[i-1]-31;j<c[i+1]-32;j++)
						for(int k=1;k<=p2;k++)
							q.push(j);
				}else{
					for(int j=c[i+1]-33;j>c[i-1]-32;j--)
						for(int k=1;k<=p2;k++)
							q.push(j);
				}
			}
			if(p1==3){
				for(int j=c[i-1]+1;j<c[i+1];j++)
					for(int k=1;k<=p2;k++)
						q.push('*');
			}
		}else{
			q.push(c[i]);
		}
	}
	while(!q.empty()){
		putchar(q.front());
		q.pop();
	}
	return 0;
}
int miku=mian();
int main(){;}