题目链接:http://acm.ocrosoft.com/problem.php?cid=1172&pid=32
题目描述
输入一个高精度的正整数n,去掉其中任意s个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的n和s,寻找一种方案使得剩下的数字组成的新数最小。
输出新的正整数。(n不超过240位)
输入数据均不需判错。
输入
n
s
输出
最后剩下的最小数。
样例输入
175438
4
样例输出
13
#include<bits/stdc++.h>
using namespace std;
char a[241];
int main(){
int s,len;
cin>>a;
cin>>s;
len=strlen(a);
for(int i=0;i<s;i++){
for(int j=0;j<len-1;j++){
if(a[j]>a[j+1]){
for(int k=j;k<len-1;k++){
a[k]=a[k+1];
}
break;
}
}
len--;
}
bool flag=0;
for(int i=0;i<len;i++){
if(a[i]!=0){
flag=1;
}
if(flag){
cout<<a[i];
}
}
if(s>=strlen(a)){
cout<<"0"<<endl;
}
cout<<endl;
return 0;
}