86分的蒟蒻求大佬调
查看原帖
86分的蒟蒻求大佬调
1038161
FNedgeGD楼主2024/8/28 12:49

写的是找最高然后踢出,86分第六个点WA,求调整

#include <bits/stdc++.h>
#include <algorithm>
using namespace std;

string s;
int k,mn=10,place,len,ans;
struct lane{
	int front,num,back;
}num[255];
int main()
{
	cin>>s;
	getchar(); scanf("%d",&k);
	for(int i=0 ; s[i]!='\0' ; i++) {
		num[i+1].num=s[i]-'0';
		num[i+1].front=i;
		num[i+1].back=i+2;
		len=i+1;
	}
	num[0].num=0; num[0].back=1; num[len+1].num=0; num[len+1].front=len;
	for(int i=1 ; i<=len ;) {
		if(num[num[i].front].num < num[i].num  &&  k > 0  &&  (num[num[i].back].num <= num[i].num || num[num[i].back].num < num[i].num )) {
			num[num[i].front].back=num[i].back;
			num[num[i].back].front=num[i].front;
			k--; i=num[i].front;
		}
		else i=num[i].back;
	}
	for(int i=num[0].back ; i<=len ; i=num[i].back) ans=ans*10+num[i].num;
	cout<<ans;
	
	return 0;
}
2024/8/28 12:49
加载中...