键盘输入一个高精度的正整数 n,去掉其中任意 k 个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的 n 和 k,寻找一种方案使得剩下的数字组成的新数最小。
对了,有多组样例。
my code:
#include<bits/stdc++.h>
using namespace std;
vector<int> vec;
bool cmp(int x,int y){
return x>y;
}
int main(){
int t;
cin>>t;
while(t--){
string n;
int k,tmp;
cin>>n>>k;
for(int i=0;i<n.size();i++){
tmp=n[i]-'0';
vec.push_back(tmp);
}
sort(vec.begin(),vec.end(),cmp);
for(int i=0;i<k;i++){
for(int j=0;j<n.size();i++){
if(vec[i]+'0'==n[j]){
n.erase(j,1);
}
}
}
cout<<n<<endl;
}
return 0;
}
ps:其实这个玩意0分+RE
n.size() < 100 数据组数 < 100 k < n.size()
orz