Welcome! You have been invited by Lê Gia Hoài to join our community. Please click here to register.
1 người đang xem
Bài viết: 28 Tìm chủ đề
3319 5
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[i] <= c[j] && i <= n && j <= m) {cout << "b" << i << " "; doit(i+1, j);} else
    if (b[i] >= 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[i];
    for (int i = 1; i <= m; i++) cin >> c[i];
    sort(c+1, c+m+1); sort(b+1, b+n+1);
    doit(1, 1);

    return 0;
}
 

Những người đang xem chủ đề này

Xu hướng nội dung

Back