哪儿出了问题。。。
查看原帖
哪儿出了问题。。。
1068809
SpringNeverDie楼主2024/7/25 22:07
#include<bits/stdc++.h>
using namespace std;

char a[10086];
int aa[10086],ida,k;
bool aaa[10086];

int main(){
	freopen("P1106.txt","r",stdin);
	while(a[ida]!='\n'){
		a[++ida]=getchar();
	}
	cin >> k;
	ida--;
	for(int i=1;i<=ida;i++){
		aa[i]=a[i]-'0';
		aaa[i]=1;
	}
	for(int i=1;i<=ida;i++){
		cout << aa[i] << " ";
	}
	
	int j=1,z=0,y=0;
	
	while(k!=0){
		for(int i=1;i<=k;i++){
			if(j-i<1){
				z=-1;
				break;
			}
			if(aaa[j-i]){
				z=j-i;
				break;
			}
		}
		
		for(int i=1;i<=k;i++){
			if(j+i>ida){
				y=-1;
				break;	
			}
			if(aaa[j+i]){
				y=j+i;
				break;
			}
		}
		
		if((aa[z]<aa[j] && aa[j]>aa[y]) || (aa[z]<aa[j] && y==-1) || (z==-1 && aa[j]>aa[y])){
			//printf("%d-%d-%d\n",z,j,y);
			aaa[j]=0;
			k--;
		}
		if(j==ida) j=1;
		else j++;
	}
	
	for(int i=1;i<=ida;i++){
		if(aaa[i]) cout << aa[i];
	}
} 

我一直找不到为什么中间莫名其妙就出现了指针回退了。。。。。。

2024/7/25 22:07
加载中...