-
题目描述
输入一个高精度的正整数n(≤240位),去掉其中任意s个数字后,剩下的数字按原左右次序组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。
-
输入
第1行:一个正整数n;
第2行:s(s<n的位数).
-
输出
最后剩下的最小数。
-
样例输入
175438
4
-
样例输出
13
- 源代码
1 #include<bits/stdc++.h>
2 using namespace std;
3 string n;
4 int s;
5 void qu(int a)
6 {
7 string h;
8 for(int j=0;j<n.size();j++)
9 if(j!=a)h+=n[j];
10 n=h;
11 }
12 int main()
13 {
14 cin>>n>>s;
15 for(int i1=0;i1<s;i1++)
16 for(int i=0;i<n.size();i++)
17 if(n[i]>n[i+1]||i==n.size()-1)qu(i);break;
18 int y=0;
19 while(n[y]=='0')y++;
20 if(y==n.size())cout<<0;
21 for(;y<n.size();y++)cout<<n[y];
22 cout<<endl;
23 }
浙公网安备 33010602011771号