• 题目描述

  输入一个高精度的正整数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 }