Hoán đổi hai số kề nhau

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Python
Hoán đổi hai số kề nhau
Mô tả và yêu cầu

Cho hai số nguyên dương 𝑛, 𝑞 và dãy số nguyên 𝑎1, 𝑎2, … ,𝑎𝑛 (𝑎𝑖 = 𝑖; 𝑖 = 1.. 𝑛) và 𝑞 thao
tác được thực hiện theo thứ tự từ 1 đến 𝑞. Với thao tác thứ 𝑖 (1 ≤ 𝑖 ≤ 𝑞) bạn được cho một số
nguyên 𝑥𝑖 (1 ≤ 𝑥𝑖 ≤ 𝑛) và thực hiện yêu cầu hoán đổi giá trị của số có giá trị 𝑥𝑖 với số đứng
liền sau nó trong dãy số. Nếu 𝑥𝑖 đ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 𝑛, 𝑞 (1 ≤ 𝑛, 𝑞 ≤ 105);
+ 𝑞 dòng tiếp theo, dòng thứ 𝑖 (1 ≤ 𝑖 ≤ 𝑞) ghi số nguyên 𝑥𝑖 (1 ≤ 𝑥𝑖 ≤ 𝑛)

Dữ liệu ra

+ In ra dãy số 𝑎1, 𝑎2, … ,𝑎𝑛 sau khi thực hiện lần lượt 𝑞 thao tác trong dữ liệu vào

Ví dụ
Input       Output
                                            5 3         2 1 4 5 3
                                            3
                                            5
                                            1
    Giải thích ví dụ:
        Dãy số ban đầu: 1,     2, 3, 4, 5
        + Truy vấn 𝑥1     =  3: hoán đổi 𝑎3 với 𝑎4 →       1, 2, 4,3,5
        + Truy vấn 𝑥2     =  5: hoán đổi 𝑎5 với 𝑎4 →       1, 2, 4, 5,3
        + Truy vấn 𝑥3     =  1: hoán đổi 𝑎1 với 𝑎2      →  2,1,  4, 5,3
    Ràng buộc:
      + Có 70% số test tương ứng 70% số điểm có 𝑛,             𝑞  ≤  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.

Tải PDF gốc


Bình luận

Hãy đọc nội quy trước khi bình luận.


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