rt,思路和第一篇题解差不多
#include <bits/stdc++.h>
using namespace std;
char a[100000005];
long long n,k;
void erasee(int x)//暴力删除
{
for(int i=x;i<k;i++)
{
a[i]=a[i+1];
}
k--;
}
int main()
{
cin>>a;
k=strlen(a);//记位数
cin>>n;
while(n--)
{
bool flag=false;
if(a[0]>a[1])//判首位
{
erasee(0);//删数
continue;
}
else
{
for(int i=1;i<k-1;i++)
{
if(a[i]>=a[i-1]&&a[i]>=a[i+1])//判山峰
{
flag=true;
erasee(i);
break;
}
}
if(!flag)
{
k--;
}
}
}
bool flag=false;//判初始0
for(int i=0;i<k;i++)
{
if(a[i]=='0'&&!flag)//判初始0
{
continue;
}
else
{
flag=true;
cout<<a[i];
}
}
if(!flag)//最后一个点输入:10 1
{
cout<<"0";
}
return 0;
}