CF193B.Xor

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

John Doe has four arrays: aa , bb , kk , and pp . Each array consists of nn integers. Elements of all arrays are indexed starting from 11 . Array pp is a permutation of integers 11 to nn .

John invented a game for his friends and himself. Initially a player is given array aa . The player must consecutively execute exactly uu operations on aa . You are permitted to execute the following operations:

  • Operation 1: For each change aia_{i} into . Expression means applying the operation of a bitwise xor to numbers xx and yy . The given operation exists in all modern programming languages, for example, in language C++ and Java it is marked as "^", in Pascal — as "xor".
  • Operation 2: For each change aia_{i} into api+ra_{pi}+r . When this operation is executed, all changes are made at the same time.

After all uu operations are applied, the number of points the player gets is determined by the formula .

John wants to find out what maximum number of points a player can win in his game. Help him.

输入格式

The first line contains space-separated integers nn , uu and rr ( 1<=n,u<=301<=n,u<=30 , 0<=r<=1000<=r<=100 ) — the number of elements in each array, the number of operations and the number that describes one of the operations.

Each of the next four lines contains nn space-separated integers — arrays aa , bb , kk , pp . The first line has array aa , the second line has array bb , the third line has array kk and the fourth one has array pp .

It is guaranteed that elements of arrays aa and bb are positive and do not exceed 10410^{4} (1<=ai,bi<=104)(1<=a_{i},b_{i}<=10^{4}) , elements of array kk do not exceed 10410^{4} in the absolute value (k<=104)(|k|<=10^{4}) and pp is a permutation of numbers from 11 to nn .

输出格式

On a single line print number ss — the maximum number of points that a player can win in John's game.

Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64d specifier.

输入输出样例

  • 输入#1

    3 2 1
    7 7 7
    8 8 8
    1 2 3
    1 3 2
    

    输出#1

    96
    
  • 输入#2

    2 1 0
    1 1
    1 1
    1 -1
    1 2
    

    输出#2

    0
    

说明/提示

In the first sample you should first apply the operation of the first type, then the operation of the second type.

首页