Trò chơi XOR

Đề bài

Mô tả

Cho bốn dãy số nguyên a, b, k và p, mỗi dãy gồm n phần tử được đánh chỉ số từ 1 đến n. Dãy p là một hoán vị của các số nguyên từ 1 đến n.

Ban đầu người chơi được cho dãy a. Người chơi phải thực hiện đúng u thao tác liên tiếp lên dãy a. Ở mỗi bước được phép chọn một trong hai thao tác sau:

  • Thao tác 1: với mọi i, thay ai bằng ai⊕bi (phép XOR nhị phân).
  • Thao tác 2: với mọi i, thay ai bằng api+r. Tất cả các thay đổi được thực hiện đồng thời (dùng giá trị của dãy a ngay trước thao tác).

Sau khi thực hiện xong đúng u thao tác, số điểm người chơi nhận được bằng

s=∑i=1nki·ai.

Hãy tìm số điểm lớn nhất mà người chơi có thể đạt được.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, u và r.
  • Dòng thứ hai chứa n số nguyên là dãy a.
  • Dòng thứ ba chứa n số nguyên là dãy b.
  • Dòng thứ tư chứa n số nguyên là dãy k.
  • Dòng thứ năm chứa n số nguyên là dãy p (một hoán vị của 1..n).

Dữ liệu ra

Một số nguyên duy nhất: số điểm lớn nhất đạt được.

Ràng buộc

  • 1≤n,u≤30
  • 0≤r≤100
  • 1≤ai,bi≤104
  • |ki|≤104
  • p là hoán vị của 1..n.

Ví dụ

Input Output Giải thích
3 2 1
7 7 7
8 8 8
1 2 3
1 3 2
96 Thực hiện thao tác 1 rồi thao tác 2. Sau thao tác 1: a=[15,15,15]. Sau thao tác 2 (với p=[1,3,2], r=1): a=[16,16,16]. Điểm =1·16+2·16+3·16=96.
2 1 0
1 1
1 1
1 -1
1 2
0 Chỉ có 1 thao tác. Thao tác 1 cho a=[0,0] (điểm 0); thao tác 2 cho a=[1,1] (điểm 1−1=0). Giá trị lớn nhất là 0.
1 1 0
1
2
-1
1
-1 Thao tác 1 cho a=[3] (điểm −3); thao tác 2 cho a=[1] (điểm −1). Kết quả tốt nhất là −1: số điểm có thể âm.

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