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. trungnam (6/7)
  2. sythai (5/8)
  3. npk1605 (5/10)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

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