Innocence
시간 제한1초메모리 제한512 MB
길이 N인 배열 중 모든 원소가 L 이상 R 이하이고 원소들의 XOR 값이 K인 경우의 수를 10^9 + 7로 나눈 나머지로 구합니다.
문제
David는 어린 아이다. 그는 Nim 같은 조합 게임을 즐겨 한다. 그는 아마추어이지만 게임 이론에 조예가 깊다. 이번에는 그가 여러분을 위해 문제를 준비했다.
정수 , , , 가 주어진다. 길이가 이고, 모든 원소가 이상 이하이며, 원소들의 비트 XOR이 와 같은 정수 배열의 개수를 구하라. 답은 로 나눈 나머지로 출력한다.
David는 해답이 완전히 맞는지 확인하려고 여러 개의 에 대한 답도 알고 싶어 한다.
입력
첫 줄에 테스트 케이스의 수 가 주어진다.
각 테스트 케이스는 다음과 같다. 첫 줄에 정수 , , , 가 공백으로 구분되어 주어진다. 이는 , , 은 같고 만 다른 질의가 개 있다는 뜻이다. 둘째 줄에 질의할 정수 개가 공백으로 구분되어 주어진다.
, , , , .
이고 을 만족하지 않는 테스트 케이스는 100개를 넘지 않는다.
출력
각 질의에 대해 답을 로 나눈 나머지를 한 줄에 출력한다.
힌트
첫 번째 예제에서는 3을 하나, 4를 하나 고르는 방법이 두 가지 있으며, 이들의 XOR 값은 7이다.
두 번째 예제에서는 3을 하나, 4를 두 개 고르는 방법이 세 가지이고, 3을 세 개 고르는 방법이 한 가지이다. 이때 XOR 값은 3이다.