---
# System prepended metadata

title: Dãy Con Tăng Dài Nhất
tags: [basic, array, fill_in_the_blank, exercise]

---

###### 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