7-18 删数问题 (10 分)
输入一个高精度的正整数n,去掉其中任意s个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的n和s,寻找一种方案使得剩下的数字组成的新数最小。
输出新的正整数。(n不超过240位)
输入数据均不需判错。
输入格式:
n和s
输出格式:
最后剩下的最小数,注意前导0不要输出。
输入样例:
176438 4
输出样例:
在这里给出相应的输出。例如:
13
作者
严华云
单位
湖州师范学院
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<iostream>
#include<string.h>
using namespace std;
int main(){
string a;
int b;
cin>>a>>b;
for(int i=0;i<b;i++){
char max=a[0];
for(int j=0;j<a.length();j++){
if(a[j]>a[j+1]){
//cout<<a[j]<<endl;
a=a.assign(a.c_str(),j)+a.substr(j+1);
break;
}
}
}
for(int i=0;i<a.length();i++){
//cout<<a[i]<<endl;
if(a[i]=='0'){
a=a.substr(i+1);
i--;
}
else{
break;
}
}
cout<<a;
}