Link bài: Thuật toán: Ta sẽ dùng đệ quy và 2 con trỏ để giải quyết bài này. Với con trỏ i, j trên 2 mảng a, b nếu a< b[j] ta sẽ in ra "ai" và tiếp tục với i+1, j. Code: Mã: #include <bits/stdc++.h> using namespace std; int c[107], b[107], n, m; void doit(int i, int j){ if (b <= c[j] && i <= n && j <= m) {cout << "b" << i << " "; doit(i+1, j);} else if (b >= c[j] && i <= n && j <= m) {cout << "c" << j << " "; doit(i, j+1);} else if (i > n && j <= m) {cout << "c" << j << " "; doit(i, j+1);} else if (i <= n && j > m) {cout << "b" << i << " "; doit(i+1, j);} } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //freopen("xstron.inp", "r", stdin); //freopen("xstron.out", "w", stdout); cin >> n >> m; for (int i = 1; i <= n; i++) cin >> b; for (int i = 1; i <= m; i++) cin >> c; sort(c+1, c+m+1); sort(b+1, b+n+1); doit(1, 1); return 0; }