만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

2로 나눈 나머지 개수 세기

시간 제한3.5초메모리 제한1024 MB

요약
값이 A에 속하는 길이 N의 수열 중 합이 S인 것의 개수를 2로 나눈 나머지를 구합니다.
난이도

보통10점 중 7점

유형
수학, 동적 계획법, 정수론
정답자
아직 제출이 없습니다

문제

KK개의 서로 다른 음이 아닌 정수 A1,A2,⋯ ,AKA_1, A_2, \cdots, A_K가 주어진다. 다음 조건을 모두 만족하는 길이 NN의 음이 아닌 정수 수열 a1,a2,⋯ ,aNa_1, a_2, \cdots, a_N의 개수를 2로 나눈 나머지를 구하라.

  • a1+a2+⋯+aN=Sa_1+a_2+\cdots+a_N=S
  • 각 ii (1≤i≤N1 \leq i \leq N)에 대해 ai=Aja_i=A_j를 만족하는 정수 jj가 존재한다.

입력 파일 하나에는 TT개의 테스트가 있다.

입력

입력은 표준 입력으로 다음 형식에 따라 주어진다.

TT

각 테스트는 다음 형식으로 주어지며, 테스트마다 이 형식이 이어진다.

NN SS KK

A1A_1 A2A_2 ⋯\cdots AKA_K

출력

각 테스트에 대해 개수를 2로 나눈 나머지를 출력한다.

제한

  • 1≤T≤51 \leq T \leq 5
  • 1≤N≤10181 \leq N \leq 10^{18}
  • 0≤S≤10180 \leq S \leq 10^{18}
  • 1≤K≤2001 \leq K \leq 200
  • 0≤A1<A2<⋯<AK≤1050 \leq A_1 < A_2 < \cdots < A_K \leq 10^5
  • 입력의 모든 값은 정수이다.

힌트

첫 번째 테스트에서 조건을 만족하는 수열은 총 51개이다.

예제1

  1. 예제 1

    입력
    2
    5 10 3
    1 2 3
    1000000000000000000 25453321771239381 10
    0 1683 21728 31623 35054 37834 39329 56842 68603 74742
    
    예상 출력
    1
    0