###### tags: `exercise` `array` `basic` `fill_in_the_blank` # Dãy Con Tăng Dài Nhất * https://lqdoj.edu.vn/problem/incarr ### Yêu cầu đề - Nhập vào hai mảng a (ban đầu là dãy không giảm) và b (thứ tự bất kì). Có thể thực hiện thao tác sau, xóa một phần tử ở mảng b rồi thêm vào một vị trị bất kì trong mảng a. Sau khi thực hiện tối đa m (số phần tử mảng b) thao tác thì độ dài xâu a là bao nhiêu. Với điều kiện a khi này là dãy tăng dần. ### Hướng dẫn 1. Nhập vào số phần tử và các giá trị của 2 mảng. * Sử dụng các hàm: input(), map(), split(), list(), int(). 2. Thêm các phần tử của mảng b vào mảng a với thứ tự bất kì. 4. Loại bỏ các phần tử trùng lặp trong mảng a để biến mảng từ trạng thái không giảm sang tăng dần. * Gợi ý dùng kiểu dữ liệu set() ### Điền vào chỗ trống * Hãy điền vào chỗ trống (`___`) để hoàn thành bài tập này. ```python # Copyright (c) 2023, Le Duc Phuc Long """ If you don't think twice, you have to code twice. """ n, m = map(int, input().split()) a = ___ b = ___ a = a+b ___ print(___) ``` ### Phần kết * Giải thích thêm về thuật toán: * Như đã nói trong phần hướng dẫn, ta chỉ cần gộp mảng a và mảng b lại, rồi xóa những phần tử trùng lặp là đã có được kết quả bài toán. * Bởi vì sau khi làm bước này ta đã có được một mảng a sau khi đã thêm vào các phần tử của mảng b, đặc biệt là những phần tử trong đó là duy nhất. * Bây giờ nếu ta sắp xếp lại mảng thì sẽ thu được mảng a tăng dần. Nhưng đề chỉ yêu cầu số lượng phần tử của mảng a khi này chứ không quan tâm đến thứ tự nên ta không làm điều đó. * Sau khi hoàn thành chương trình trên, hãy nộp bài ở link được gắn ở đầu bài viết để xem kết quả. * Qua bài tập, hi vọng bạn đã biết thêm được điều gì đó. * Nếu bạn phát hiện sai sót, có thắc mắc, hay bất kì ý kiến đóng góp nào… -> Xin hãy cho tôi biết qua: m.me/phuclong.leduc