10分求助
查看原帖
10分求助
754311
zhangjiting楼主2023/3/4 14:14

样例全过,但只对了一个点

#include<bits/stdc++.h>
using namespace std;
struct node{
	int r,id;
}a[500005];
int main(){
	int n,k;
	cin>>n>>k;
	int top=n;
	for(int i=1;i<=n;i++) {
		char cr;
		cin>>cr;
		a[i].id=cr-'0';
		a[i-1].r=a[i].id;
	}
	for(int i=1;i<=k;i++){
		int f=0;
		for(int j=1;j<n;j++){
			if(a[j].id<a[j].r&&a[j].id!=0-1) {
				a[j].id=-1;
				a[j-1].r=a[j+1].id;
				f=1;
				break;
			}
		}
		if(f==0){
			if(a[top].id==0-1){
				while(1){
					top--;
					if(a[top].id!=0-1) break;
				}
			}
			a[top].id=0-1;
		}
	}
	for(int i=1;i<=n;i++){
		if(a[i].id!=0-1) cout<<a[i].id;
	}
	return 0;
}

2023/3/4 14:14
加载中...