Biến đổi hoán vị

Xem dạng PDF

Gửi bài giải


Điểm: 0,54 (OI)
Giới hạn thời gian: 0.38s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
Russian Code Cup 2012
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho ~1~ dãy số có ~N~ phần tử. Có ~2~ thao tác được phép sử dụng để biến đổi dãy số:

  1. Đổi chỗ ~2~ phần tử đầu tiên của dãy
  2. Cho ~1~ hoán vị ~P~, di chuyển phần tử thứ nhất đến vị trí ~P[1]~, phần tử thứ ~2~ đến vị trí ~P[2]~, ...

Các thao tác được phép thực hiện với số lần không hạn chế và theo bất kì thứ tự nào.

Cho ~M~ truy vấn "u v", bạn cần trả lời xem có thể có thể biến đổi hoán vị ban đầu sao cho phần tử thứ ~u~ có thể di chuyển đến vị tri ~v~ hay không?

Input

  • Dòng ~1~: ~2~ số ~N~ và ~M~ ~(0 < N~, ~M \le 10^{5})~
  • Dòng ~2~: hoán vị ~P~ ~(1~ hoán vị của {1, ~2~, ..., N})
  • Dòng ~3~ ...~M + 2~: mỗi dòng chứa ~2~ số nguyên ~u~ và ~v~ ~(0 < u~, ~v \le N)~

Output

  • Với mỗi truy vấn, đưa ra "Yes" hoặc "No" tương ứng

Sample Input

4 2
1 4 3 2
4 1
3 4

Sample Output

Yes
No

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 1
    Atland  đã bình luận lúc 12, Tháng 4, 2021, 8:36

    Bài này test hơi yếu mong ad cho thêm test


    • 1
      ngfam  đã bình luận lúc 14, Tháng 4, 2021, 13:10

      Hi bạn,

      Mình đã kiểm tra lại test và solution của bạn và thấy bộ test không có vấn đề gì nghiêm trọng. Cảm ơn bạn đã góp ý.