1321:删数问题(Noip1994)

【题目描述】

输入一个高精度的正整数n,去掉其中任意s个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的n和s,寻找一种方案使得剩下的数字组成的新数最小。

输出新的正整数。(n不超过240位)

输入数据均不需判错。

【输入】

n

s

【输出】

最后剩下的最小数。

【输入样例】

175438
4

【输出样例】

13
// Created on 2020/2/11

/*#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <climits>*/
#include <bits/stdc++.h>

using namespace std;

const int idata=1000+5;
char ch[idata];
int n,m;
int flag;
int ACanswer;

int main()
{
    int i,j;
    gets(ch);
    cin>>n;
    int len=strlen(ch);

    while(n--)
    {
    for(i=0;i<len-1;i++)
    {
        if(ch[i]>ch[i+1])
        {
            for(j=i;j<len-1;j++)
            {
                ch[j]=ch[j+1];
            }
            break;
        }
    }
    len--;
    }

    for(i=0;i<len;i++)
    {
        if(ch[0]=='0')
        {
            if(!flag)
            {
                if(ch[i]!='0')
                    flag=i;
            }
            if(flag) break;
        }
        if(ch[0]!='0')
            break;
    }
    for(i=flag;i<len;i++)
        cout<<ch[i];
    cout<<endl;

}
发布了177 篇原创文章 · 获赞 8 · 访问量 6338

猜你喜欢

转载自blog.csdn.net/C_Dreamy/article/details/104267454