Nastya và Hàng Ăn Trưa

Đề bài

Mô tả

Có N học sinh đang đứng trong một hàng đợi, được đánh số từ 1 đến N. Vị trí ban đầu trong hàng được mô tả bởi hoán vị p1,p2,…,pN, trong đó pi là số hiệu của học sinh đứng ở vị trí thứ i (vị trí 1 là đầu hàng, vị trí N 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 pN.

Cho M cặp (u,v) với ý nghĩa: nếu học sinh u đang đứng ngay trước học sinh v trong hàng, thì u đồng ý đổi chỗ cho v (sau khi đổi, v tiến lên một vị trí và u 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 (u,v) 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 N và M.
  • Dòng thứ hai chứa N số nguyên p1,p2,…,pN — hoán vị mô tả hàng đợi ban đầu.
  • M dòng tiếp theo, mỗi dòng chứa hai số nguyên ui,vi (ui≠vi) — một cặp đồng ý đổi chỗ. Các cặp (ui,vi) đôi một phân biệt; tuy nhiên có thể đồng thời tồn tại cả (a,b) lẫn (b,a).

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

  • 1≤N≤3·105
  • 0≤M≤5·105
  • 1≤pi≤N và p là một hoán vị của 1,2,…,N
  • 1≤ui,vi≤N

Ví dụ

Input Output Giải thích
5 2
3 1 5 4 2
5 2
5 4
1 Hàng đầu là [3,1,5,4,2]. Nastya là số 2. Cặp (5,2) cho phép 5 và 2 đổi chỗ khi 5 đứng ngay trước 2, nhưng 4 đang chen giữa. Trước hết áp dụng cặp (5,4) để được [3,1,4,5,2], rồi áp dụng cặp (5,2) được [3,1,4,2,5]. Nastya tiến lên 1 vị trí.
3 3
3 1 2
1 2
3 1
3 2
2 Lần lượt: đổi (3,1) → [1,3,2], đổi (3,2) → [1,2,3], đổi (1,2) → [2,1,3]. Nastya (số 2) tiến từ vị trí 3 lên vị trí 1, tăng 2 bậc.
2 1
1 2
1 2
1 Học sinh 1 và 2 đổi chỗ trực tiếp, Nastya tiến lên đầu hàng.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0