Nastya và Hàng Ăn Trưa
Nộp bài giải
Điểm:
6,00 (OI)
Giới hạn thời gian:
2.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
C++, Dart, Go, Groovy, Java, Javascript, Kotlin, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Typescript, Zig
Có học sinh đang đứng trong một hàng đợi, được đánh số từ đến . Vị trí ban đầu trong hàng được mô tả bởi hoán vị , trong đó là số hiệu của học sinh đứng ở vị trí thứ (vị trí là đầu hàng, vị trí là cuối hàng).
Nastya là học sinh đứng ở cuối hàng, tức là học sinh có số hiệu .
Cho cặp với ý nghĩa: nếu học sinh đang đứng ngay trước học sinh trong hàng, thì đồng ý đổi chỗ cho (sau khi đổi, tiến lên một vị trí và lùi xuống một vị trí).
Hãy tính số vị trí tối đa mà Nastya có thể tiến lên trong hàng nhờ chuỗi các lượt đổi chỗ liên tiếp (mỗi lượt sử dụng một cặp thỏa mãn, không nhất thiết khác nhau giữa các lượt).
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- Dòng thứ hai chứa số nguyên — hoán vị mô tả hàng đợi ban đầu.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên () — một cặp đồng ý đổi chỗ. Các cặp đôi một phân biệt; tuy nhiên có thể đồng thời tồn tại cả lẫn .
Dữ liệu ra
In ra một số nguyên duy nhất — số vị trí tối đa Nastya có thể tiến lên.
Ràng buộc
- và là một hoán vị của
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 2 3 1 5 4 2 5 2 5 4 |
1 | Hàng đầu là . Nastya là số . Cặp cho phép và đổi chỗ khi đứng ngay trước , nhưng đang chen giữa. Trước hết áp dụng cặp để được , rồi áp dụng cặp được . Nastya tiến lên vị trí. |
| 3 3 3 1 2 1 2 3 1 3 2 |
2 | Lần lượt: đổi → , đổi → , đổi → . Nastya (số ) tiến từ vị trí lên vị trí , tăng bậc. |
| 2 1 1 2 1 2 |
1 | Học sinh và đổi chỗ trực tiếp, Nastya tiến lên đầu hàng. |
Bình luận