HOÁN ĐỔI HAI SỐ KỀ NHAU

Nguồn: None

(aswap.*)

Cho hai số nguyên dương \(n,\ q\) và dãy số nguyên \(a_{1},a_{2},\ldots,a_{n}\ (a_{i} = i;i = 1..n)\)\(q\) thao tác được thực hiện theo thứ tự từ 1 đến \(q\). Với thao tác thứ \(i\ (1 \leq i \leq q)\) bạn được cho một số nguyên \(x_{i}\ (1 \leq x_{i} \leq n)\) và thực hiện yêu cầu hoán đổi giá trị của số có giá trị \(x_{i}\) với số đứng liền sau nó trong dãy số. Nếu \(x_{i}\) đang đứng cuối dãy số thì hoán đổi với số đứng liền trước nó.

Dữ liệu vào:

+ Dòng đầu tiên ghi lần lượt hai số nguyên \(n,\ q\ (1 \leq n,q \leq 10^{5})\);

+ \(q\) dòng tiếp theo, dòng thứ \(i\ (1 \leq i \leq q)\) ghi số nguyên \(x_{i}\ (1 \leq x_{i} \leq n)\)

Kết quả:

+ In ra dãy số \(a_{1},a_{2},\ldots,a_{n}\) sau khi thực hiện lần lượt \(q\) thao tác trong dữ liệu vào

Ví dụ:

Input Output
5 3
3
5
1
2 1 4 5 3

Giải thích ví dụ:

Dãy số ban đầu: \(1,\ 2,\ 3,\ 4,\ 5\)

+ Truy vấn \(x_{1} = 3\): hoán đổi \(a_{3}\) với \(a_{4}\) \(\rightarrow 1,\ 2,\ 4,\ 3,\ 5\)

+ Truy vấn \(x_{2} = 5\): hoán đổi \(a_{5}\) với \(a_{4}\) \(\rightarrow 1,\ 2,\ 4,\ 5,\ 3\)

+ Truy vấn \(x_{3} = 1\): hoán đổi \(a_{1}\) với \(a_{2} \rightarrow 2,\ 1,\ 4,\ 5,\ 3\)

Ràng buộc:

+ Có 70% số test tương ứng 70% số điểm có \(n,\ q \leq 2000\);

+ Có \(30\%\) số test còn lại tương ứng 30% số điểm không có ràng buộc gì thêm.

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. nakato (8/16)
  2. tribinh (6/9)
  3. sythai (4/6)
Trong 7 ngày
  1. bao_khanh (61/90)
  2. nakato (46/115)
  3. phamnhi (26/104)
Trong 30 ngày
  1. phamnhi (74/259)
  2. kiennhientv (72/163)
  3. npk1605 (68/96)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 39159

Lưu Hải Phong - 2020
[email protected]