OR Cửa Sổ Trượt

Đề bài

Mô tả

Cho một dãy n số nguyên. Với mỗi cửa sổ gồm k phần tử liên tiếp, tính OR nhị phân của các phần tử trong cửa sổ đó. Hãy in ra XOR nhị phân của tất cả các giá trị OR vừa tính.

Dữ liệu vào rất lớn nên dãy số không được cho trực tiếp mà được sinh bằng một bộ sinh tuyến tính:

x1=x,xi=(a·xi−1+b)modcvới i=2,3,…,n.

Chú ý phần tử đầu tiên đúng bằng x, không lấy phần dư cho c.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và k: số phần tử của dãy và kích thước cửa sổ.
  • Dòng thứ hai chứa bốn số nguyên x, a, b, c: các tham số của bộ sinh.

Dữ liệu ra

In ra một số nguyên duy nhất: XOR của OR trên tất cả n−k+1 cửa sổ.

Ràng buộc

  • 1≤k≤n≤107
  • 0≤x,a,b≤109
  • 1≤c≤109

Ví dụ

Input Output Giải thích
8 5
3 7 1 11
4 Dãy sinh ra là [3,0,1,8,2,4,7,6]. Bốn cửa sổ độ dài 5 là [3,0,1,8,2], [0,1,8,2,4], [1,8,2,4,7], [8,2,4,7,6] với OR lần lượt là 11,15,15,15. Kết quả là 11⊕15⊕15⊕15=4.
5 2
20 3 1 7
17 Phần tử đầu giữ nguyên giá trị 20 dù c=7, các phần tử sau mới lấy phần dư: dãy là [20,5,2,0,1]. OR của bốn cửa sổ độ dài 2 là 21,7,2,1, và 21⊕7⊕2⊕1=17.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0