ACM 训练日志记录 · 思考 · 成长 提交 / 修改记录
郭一鸣 / 题目列表训练档案
导出

P1106 删数问题

来源:洛谷 ★ 1300

本题活力0.36按难度、完成结果与训练证据估算

算法如山行则将至

题目描述

高精度正整数n去掉k位后,使剩余数字组成最小数。

代码

#include<iostream>
#include<cstring>
using namespace std;
char s[260];
int main()
{
    int k;
    cin>>s>>k;
    int len=strlen(s);
    while(k--)
    {
        int p=len-1;
        for(int i=0;i<len-1;i++)
        {
            if(s[i]>s[i+1])
            {
                p=i;
                break;
            }
        }
        for(int i=p;i<len-1;i++)s[i]=s[i+1];
        len--;
    }
    int p=0;
    while(p<len&&s[p]=='0')p++;
    if(p==len)
    {
        cout<<0<<endl;
        return 0;
    }
    for(int i=p;i<len;i++)cout<<s[i];
    cout<<endl;
    return 0;
}