删数问题

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

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

Input

输入有多组 每组包括原始数n,要去掉的数字数s;

Output

输出去掉s个数后最小的数

Sample Input

178543 4

Sample Output

13

#include <stdio.h>
#include <string.h>
int  main()
{
    int i,k,s,len;
    char a[100];
    while(scanf("%s %d",a,&s)!=EOF)
    {
        for(k=1; k<=s; k++)
        {
            len=strlen(a);
            i=0;
            while(i<len &&a[i]<=a[i+1]) i++;
            while(i<len)
            {
                a[i]=a[i+1];
                i++;
            }
        }
        len=strlen(a);
        i=0;
        while(i<len&&a[i]=='0') i++;
        if (i<len)
        {
            while(i<len)
            {
                printf("%c",a[i]);
                i++;
            }
        }
        else printf("0");
        printf("\n");
    }
    return 0;
}