一本通1321:【例6.3】删数问题(Noip1994)
1321:【例6.3】删数问题(Noip1994)
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 11613 通过数: 3898
【题目描述】
输入一个高精度的正整数n,去掉其中任意s个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的n和s,寻找一种方案使得剩下的数字组成的新数最小。
输出新的正整数。(n不超过240位)
输入数据均不需判错。
【输入】
n
s
【输出】
最后剩下的最小数。
【输入样例】
175438 4
【输出样例】
13
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char b[1000];
int a[1000];
int main()
{
int n,s,i=0;
cin>>b;
cin>>s;
int len=strlen(b);
for(int i=0;i<strlen(b);i++)
a[i]=b[i]-48;
for(int i=1;i<=s;i++)
{
for(int j=0;j<strlen(b);j++)
if(a[j]>a[j+1])
{
for(int k=j;k<strlen(b)-1;k++)
a[k]=a[k+1];
break;
}
len--;
}
for(int i=0;i<len;i++)
{
if(a[i]!=0) cout<<a[i];
}
}