Xâu min c++(code đơn giản thôi nha mấy bn :-:) Cho xâu S chứa các kí tự 1..9 ( |S|≤1000 kí tự) và số nguyên K (1≤K≤|S|). (|S|độ dài của xâu S) Yêu cầu: Chọn Kkí 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. Dữ liệu vào Dòng 1: Ghi số K. Dòng 2: Ghi xâu S. Kết quả Ghi một số duy nhất X. Sample Input 3 89678982 Sample Output 672

1 câu trả lời

#include <bits/stdc++.h>
using namespace std;
int main()
{
    long long k; //k=3
    cin>>k;
    string s;//89678289 =8
    cin>>s;
    string a="";
    int vt=-1;
    int dd=s.size()-1;
    for(int i=1;i<=k;i++)
    {
        char sln='9'+1;
        for(int j=vt+1;j<=dd-(k-i);j++)
        {
            if(char(sln)>s[j]) {sln=s[j]; vt=j;}
        }
        a=a+sln;
    }
    cout<<a;
    return 0;
}

Câu hỏi trong lớp Xem thêm