一本通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];
	}
} 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号