Submit solution
Points:
0.40 (partial)
Time limit:
1.0s
Memory limit:
256M
Input:
stdin
Output:
stdout
Problem type
Allowed languages
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch
In case the statement didn't load correctly, you can download the statement here: Statement
Đếm số cách chia các số nguyên dương từ ~1~ đến ~n~ vào hai nhóm sao cho mọi cặp hai số khác nhau thuộc cùng một nhóm có tổng không thuộc tập ~k~ số cho trước. ~k~ số này là luỹ thừa của ~2~.
Input
Gồm không quá ~10000~ test. Mỗi test bắt đầu bằng một dòng chứa ~2~ số nguyên ~n~ và ~k~ ~(1 \leq n \leq 10^{18}~; ~1 \leq k \leq 61)~. Dòng thứ hai chứa ~k~ số nguyên dương là luỹ thừa của ~2~ và không vượt quá ~2n~.
Dữ liệu kết thúc bằng một dòng chứa hai số ~0~.
Output
Với mỗi test, ghi ra số cách phân nhóm theo modulo ~1000000007~.
Sample Input
5 1
1
4 2
4 2
0 0
Sample Output
32
8
Comments
cái đề bài ở bên dưới không có bài power thì phải
Đề bài power ở ngay trang đầu, bài thứ 2.
à vâng, lỗi em không nhìn thấy
Đề viết lỗi: n <= 1018 phải là n <= 10^18
Ok em sửa rồi nha anh