duong3982oj Contest 04 - Miku biến hình

Xem dạng PDF

Gửi bài giải


Điểm: 10,00 (OI)
Giới hạn thời gian: 4.5s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Dạo này, Miku phát hiện ra cô ấy có sở thích đặc biệt với các con số. Nhân ngày sinh nhật, cô ấy được tặng một dãy số ~a~ gồm ~n~ phần tử ~a_1, a_2, ..., a_n~. Ban đầu, tất cả các phần tử đều có giá trị bằng ~0~. Hôm nay, cô ấy quyết định đố các bạn cùng lớp bài toán như sau:

Miku có ~q~ phép màu biến tất cả các phần tử trong khoảng chỉ định ~[l, r]~ như sau: phần tử thứ ~l~ sẽ được tăng một giá trị ~1^2 \times x~, phần tử thứ ~l + 1~ sẽ được tăng một giá trị ~2^2 \times x~, phần tử thứ ~l + 2~ sẽ được tăng một giá trị ~3^2 \times x~, ..., phần tử thứ ~r~ sẽ được tăng một giá trị ~(r - l + 1)^2 \times x~.

Nhiệm vụ của các bạn là hãy tìm ra mảng ~a~ sau ~q~ lần hô biến của Miku.

INPUT

Dòng đầu tiên chứa số nguyên dương ~n~ (~1 \le n \le 10^7~).

Dòng thứ hai chứa số nguyên dương ~q~ (~1 \le q \le 10^7~) là số lượng truy vấn.

Dòng thứ ba gồm năm số nguyên dương ~l_1, l_2, r_1, r_2, x_{cap}~. (~1 \le l_1, l_2, r_1, r_2 \le 10^9~, ~1 \le x_{cap} \le 100~).

Các truy vấn sẽ được xây dựng như sau:

  • Ban đầu, đặt ~cur_l = 0, cur_r = 0, cur_x = 0~.
  • ~q~ truy vấn sẽ lần lượt được sinh ra bằng cách thực hiện lần lượt các thao tác như sau:
    • ~cur_l = (cur_l \times l_1 + l_2)~ ~\%~ ~n + 1~.
    • ~cur_r = (cur_r \times r_1 + r_2)~ ~\%~ ~n + 1~.
    • ~cur_x = (cur_x \times cur_l + cur_r)~ ~\%~ ~x_{cap} + 1~.
    • Nếu ~cur_l > cur_r~, ta đổi hai số này cho nhau.

Lúc này, truy vấn sẽ là bộ ba số (~cur_l~, ~cur_r~, ~cur_x~).

OUTPUT

Vì kết quả có thể rất lớn, hãy in ra tổng XOR của mảng ~a~, sau khi chia dư mọi phần tử cho ~10^9 + 7~.

Cụ thể hơn, hãy in ra ~(a_1~ ~\%~ ~(10^9 + 7))~ ~XOR~ ~(a_2~ ~\%~ ~(10^9 + 7))~ ~XOR~ ... ~XOR~ ~(a_n~ ~\%~ ~(10^9 + 7))~.

SAMPLE INPUT

5
4
1 2 3 4 7

SAMPLE OUTPUT

176
Truy vấn ~cur_l~ ~cur_r~ ~swapped~ ~cur_x~ Mảng sau khi thực hiện truy vấn
~1~ ~3~ ~5~ ~0~ ~6~ ~0, 0, 6, 24, 54~
~2~ ~1~ ~5~ ~0~ ~5~ ~5, 20, 51, 104, 179~
~3~ ~4~ ~5~ ~0~ ~5~ ~5, 20, 51, 109, 199~
~4~ ~2~ ~5~ ~0~ ~2~ ~5, 22, 59, 127, 231~

~XOR~ của cả mảng này là ~176~.

SUBTASKS

Subtask Điểm Ràng buộc
1 ~10~ ~n, q \le 1000~.
2 ~10~ ~n, q \le 5000~.
3 ~10~ ~n, q \le 5 \times 10^4~.
4 ~16~ ~n, q \le 3 \times 10^5~.
5 ~16~ ~x_{cap} = 1~.
6 ~38~ Không có ràng buộc gì thêm.

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.