玄关求调
  • 板块P1106 删数问题
  • 楼主WWFGT
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/11 19:42
  • 上次更新2024/9/11 22:21:40
查看原帖
玄关求调
1068809
WWFGT楼主2024/9/11 19:42
#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-=2;
	for(int i=1;i<=ida;i++){
		aa[i]=a[i]-'0';
		aaa[i]=1;
	}
	
	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((a[z]<a[j] && a[j]>a[y]) || (a[z]<a[j] && y==-1) || (z==-1 && a[j]>a[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/9/11 19:42
加载中...