Xóa chữ số

Xem PDF



Thời gian:
Python 3 3.0s

Tác giả:
Dạng bài
Điểm: 800 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Hãng cung cấp dịch vụ điện thoại XYZ khuyến khích nhiều người đăng kí thuê bao bằng cách: Khi khách hàng đến đăng kí thuê bao thì sẽ được cấp hai số may mắn là số nguyên dương \(n\)\(k\), hãng sẽ khuyến mại người đó một số tiền nhận được từ số \(n\) sau khi xóa đúng \(k\) chữ số (\(k\) nhỏ hơn số chữ số của \(n\)). Hải vừa mới đăng kí thuê bao của hãng và được cung cấp hai số \(n\)\(k\).

Yêu cầu: Bạn hãy giúp Hải xóa đi \(k\) chữ số của số \(n\) để số nhận được số tiền là lớn nhất.

Input

  • Dòng thứ nhất là số \(n\) (số chữ số của \(|n| \leq 10^6\))
  • Dòng thứ hai là số \(k\ (k < n)\)

Output

  • Một dòng duy nhất là số lớn nhất có được sau khi xóa đi \(k\) chữ số của \(n\).

Scoring

  • Subtask #1: \(|n| \leq 10^2\).
  • Subtask #2: \(|n| \leq 10^4\).
  • Subtask #3: \(|n| \leq 10^6\).

Example

Test 1

Input
58816
2
Output
886

Test 2

Input
2357111317192329
6
Output
7317192329

Bình luận


  • -1
    penistone    11:03 a.m. 22 Tháng 9, 2024
    Solution
    C++
    #include<bits/stdc++.h>
    #define int long long
    #define endl "\n"
    using namespace std;
    vector<char> v;
    signed main()
    {
        ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
        string s; int k,i,j,tmp,d=0;
        cin>>s>>k;
        for(i=0;i<s.size();i++)
        {
            if (v.size()==0) v.push_back(s[i]);
            else
            {
                while (v.size()&&k&&v.back()<s[i]) v.pop_back(),k--;
                v.push_back(s[i]);
            }
        }
        while (k--) v.pop_back();
        for(i=0;i<v.size();i++) cout<<v[i];
    }
    
    • 12 bình luận nữa