Sắp xếp mảng

View as PDF

Time limit: 1.0s , Memory limit: 256M , Points: 2000 (partial)

Cho mảng a gồm n phần tử được đánh số từ 1 đến n. Ban đầu, mảng a được sắp xếp tăng dần (a_1 < a_2<...<a_n).

Cho k cặp số nguyên (x_1,y_1),(x_2,y_2),...,(x_k,y_k). Thực hiện thao tác sau với bất kỳ số lần nào (có thể không thực hiện):

  • Chọn một chỉ số i (1 \le i \le k) (chỉ số i có thể được chọn nhiều lần), hoán đổi a_{x_i}a_{y_i}.

Bạn hãy xác định có thể sắp xếp mảng a theo thứ tự giảm dần bằng cách thực hiện thao tác trên với bất kỳ số lần nào hay không.

Input

  • Dòng đầu tiên chứa hai số nguyên nk (2 \le n \le 10^6 ; 1 \le k \le 10^6).
  • Dòng thứ hai chứa n số nguyên của mảng a (1 \le a_1 < a_2 < ... < a_n \le 10^6).
  • k dòng tiếp theo, dòng thứ i chứa hai số nguyên x_iy_i (1 \le x_i<y_i \le n).

Output

  • In ra YES nếu có thể sắp xếp mảng a theo thứ tự giảm dần, ngược lại in ra NO.

Examples

Sample Input 1
5 3
2 5 6 8 9
1 3
2 4
3 5
Sample Output 1
YES
Sample Input 2
3 1
1 2 4
1 2
Sample Output 2
NO

Scoring

  • Subtask 1 - 1000 điểm: n,k \le 100.
  • Subtask 2 - 1000 điểm: Không có ràng buộc gì thêm

Notes

Trong ví dụ thứ nhất, có thể sắp xếp mảng theo thứ tự tăng dần như sau:

  • Chọn i=2, hoán đổi a_2a_4, mảng trở thành a=[2,8,6,5,9].
  • Chọn i=3, hoán đổi a_3a_5, mảng trở thành a=[2,8,9,5,6].
  • Chọn i=1, hoán đổi a_1a_3, mảng trở thành a=[9,8,2,5,6].
  • Chọn i=3, hoán đổi a_3a_5, mảng trở thành a=[9,8,6,5,2] và được sắp xếp giảm dần.

Comments