和答案一样但是为什么RE???请教一下
查看原帖
和答案一样但是为什么RE???请教一下
376452
colin_lord楼主2020/11/6 16:18
 #include<bits/stdc++.h>

using namespace std;
int t=0;
int main()
{
	int p1,p2,p3;
	string m,g;
	cin>>p1>>p2>>p3;
	cin>>m;
	int k=m.size();
for(int i=0;i<k;i++,t++){
	if(m[i]!='-'){
	g[t]=m[i];
	cout<<g[t];	
	}	
	if(m[i]=='-'&&i>=1){
		if(m[i-1]>=m[i+1]){
		g[t]=m[i];cout<<g[t];	
		}   
		if(m[i-1]<m[i+1])
	    {
		   if(p1==1){
		  	if(p3==1)
		    for(char j=m[i-1]+1;j<m[i+1];j++)
		    for(int k=1;k<=p2;k++,t++){
		     g[t]=j;cout<<g[t];
			}
			else
		  	for(char j=m[i+1]+1;j<m[i-1];j--)
		    for(int k=1;k<=p2;k++,t++){
		 	 g[t]=j;cout<<g[t];    	
		    }
		    }
		   if(p1==2){
		  	if(p3==1){
			  if(m[i-1]>='a'&&m[i+1]<='z')
			  for(char j=m[i-1]-31;j<m[i+1]-32;j++)
		      for(int k=1;k<=p2;k++,t++){
		      g[t]=j;cout<<g[t];
			  }
			  else
			  for(char j=m[i-1]+1;j<m[i+1];j++)
		      for(int k=1;k<=p2;k++,t++){
		      g[t]=j;cout<<g[t]; 	
			  }
		   }
		   else{
			  if(m[i-1]>='a'&&m[i+1]<='z')
			  for(char j=m[i+1]-33;j>m[i-1]-32;j--)
		      for(int k=1;k<=p2;k++,t++){
		      g[t]=j;cout<<g[t];	
			  }
			  if(m[i-1]>='1'&&m[i+1]<='9')
			  for(char j=m[i+1]-1;j>m[i-1];j--)
		      for(int k=1;k<=p2;k++,t++){
		      g[t]=j;cout<<g[t];	
			  } 	
	       } 
		   }	
		}
		if(p1==3)
		for(char j=m[i-1]+1;j<m[i+1];j++)
		    for(int k=1;k<=p2;k++,t++){
		 	 g[t]='*';cout<<g[t];    	
		    }
	}
}
}

为什么会RE?有大神吗?我很想弄明白,不知道哪里越界了

2020/11/6 16:18
加载中...