아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

배수 피하기

면접 대비

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

요약
크기가 2 이상이고 서로 다른 두 원소의 합이 K의 배수가 되지 않는 부분집합의 개수를 1e9+7로 나눈 나머지로 구한다.
난이도

보통10점 중 6점

유형
조합론, 수학, 해시맵, 정수론
정답자
아직 제출이 없습니다

문제

크기 NN인 집합 A=A_1,A_2,⋯ ,A_NA = \\{A\_1, A\_2, \cdots, A\_N\\}와 정수 KK가 주어집니다. AA의 부분집합 SS가 좋은 집합이라는 것은 다음 조건을 모두 만족시킴을 의미합니다.

  • SS에는 두 개 이상의 수가 포함되어 있습니다.
  • SS의 서로 다른 두 원소 a,b∈Sa, b \in S에 대해서, a+ba + b는 KK의 배수가 아닙니다.

좋은 집합의 개수를 출력하세요.

입력

첫 줄에 정수의 개수 NN과 문제의 정수 KK가 공백으로 구분되어 주어집니다. (2≤N,K≤100,000)(2 \le N, K \le 100\\,000)

둘째 줄에 NN개의 서로 다른 정수 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N이 공백으로 구분되어 주어집니다. (1≤A_i≤109)(1 \le A\_i \le 10^9)

출력

첫 줄에 좋은 집합의 개수를 출력하세요. 단, 수가 매우 커질 수 있으니 1,000,000,007(=109+7)1\\,000\\,000\\,007 (= 10^9+7)로 나눈 나머지를 출력하세요. 1,000,000,0071\\,000\\,000\\,007은 소수입니다.

예제1

  1. 예제 1

    입력
    5 6
    1 2 3 4 5
    
    예상 출력
    12