Xâu min

Xem PDF




Thời gian:
Scratch 5.0s

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

Cho xâu \(S\) chứa các kí tự \(1 \ldots 9\) (\(|S| \leq 1000\) kí tự) và số nguyên \(K\) (\(1 \leq K \leq |S|\)). (\(|S|\) độ dài của xâu \(S\))

Yêu cầu: Chọn \(K\) kí tự trong xâu \(S\) theo thứ tự ban đầu để tạo thành số \(X\) gồm \(K\) chữ số có giá trị bé nhất.

Input

  • Dòng 1: Ghi số \(K\).
  • Dòng 2: Ghi xâu \(S\).

Output

  • Ghi một số duy nhất \(X\).

Example

Test 1

Input
3
89678982 
Output
672

Bình luận


  • 0
    vietnammuonnam_mvn    6:36 p.m. 24 Tháng 8, 2024

    def smallest_number(K, S):
    stack = []
    n = len(S)

    for i in range(n):
        while stack and stack[-1] > S[i] and len(stack) - 1 + (n - i) >= K:
            stack.pop()
        if len(stack) < K:
            stack.append(S[i])
    
    return ''.join(stack)
    

    Đọc dữ liệu từ đầu vào

    import sys
    input = sys.stdin.read
    data = input().split()
    K = int(data[0])
    S = data[1]

    Tính kết quả và in ra

    print(smallest_number(K, S))

    • 10 bình luận nữa