QOJ.ac

QOJ

Time Limit: 3.0 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#14093. Sắp xếp bằng thay thế

Statistics

Cho một mảng số nguyên $A$ và một tập số nguyên $B$, sao cho tất cả các số trong $A$ và $B$ đều đôi một khác nhau. Nhiệm vụ của bạn là biến $A$ thành một mảng đã sắp xếp. Để làm điều đó, bạn có thể lấy một số bất kỳ từ $B$ và dùng nó thay thế một phần tử bất kỳ của $A$. Bạn có thể thực hiện thao tác này bao nhiêu lần tùy ý, nhưng mỗi phần tử của $B$ chỉ được dùng nhiều nhất một lần.

Hãy xác định số thao tác ít nhất cần thiết để biến $A$ thành mảng đã sắp xếp, hoặc xác định rằng điều đó là không thể.

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên $N$ và $M$ ($1 \le N,M \le 5\cdot10^5$), lần lượt là kích thước của $A$ và $B$.

Dòng thứ hai chứa $N$ số nguyên $A_1,A_2,\ldots,A_N$.

Dòng thứ ba chứa $M$ số nguyên $B_1,B_2,\ldots,B_M$.

Tất cả $N+M$ phần tử đều đôi một khác nhau, dương và không vượt quá $10^9$.

Dữ liệu ra

Nếu không thể biến $A$ thành mảng đã sắp xếp, in ra $-1$. Ngược lại, in ra số thao tác ít nhất cần thiết.

Ví dụ

Dữ liệu vào 1

4 1
2 6 13 10
5

Dữ liệu ra 1

-1

Dữ liệu vào 2

4 2
2 6 13 10
5 4

Dữ liệu ra 2

2

Dữ liệu vào 3

4 3
2 6 13 10
5 4 19

Dữ liệu ra 3

1

Ghi chú

Trong cả ba ví dụ, vấn đề là $13>10$, nên ta phải thay đổi ít nhất một trong hai số này.

Ở ví dụ đầu, ta có thể giảm $13$ bằng cách thay nó bằng $5$, nhưng điều đó làm hỏng thứ tự ở phía còn lại, nên không có lời giải.

Ở ví dụ thứ hai, ta còn có $4$ để sửa phía bị hỏng. Không thể thực hiện với ít hơn $2$ thao tác.

Ở ví dụ thứ ba, cuối cùng ta có thể tăng phần tử cuối, nhờ đó sắp xếp $A$ bằng $1$ thao tác.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.