(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)\) và \(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.
Code tích cực |
---|
Trong 24h |
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |