Biến đổi hoán vị

View as PDF

Submit solution


Points: 0.54 (partial)
Time limit: 0.38s
Memory limit: 256M
Input: stdin
Output: stdout

Problem source:
Russian Code Cup 2012
Problem type
Allowed languages
C, C++, Java, Kotlin, Pascal, PyPy, Python, 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

Comments

Please read the guidelines before commenting.



  • 1
    Atland   commented on April 12, 2021, 3:36 p.m.

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


    • 1
      ngfam   commented on April 14, 2021, 8:10 p.m.

      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 ý.