Shift and Decrement

AtCoder
IDarc086_d
Time2000ms
Memory256MB
Difficulty
There are $N$ non-negative integers written on the blackboard: $A_1, ..., A_N$. Snuke can perform the following two operations at most $K$ times in total in any order: * Operation A: Replace each integer $X$ on the blackboard with $X$ divided by $2$, rounded down to the nearest integer. * Operation B: Replace each integer $X$ on the blackboard with $X$ minus $1$. This operation cannot be performed if one or more $0$s are written on the blackboard. Find the number of the different possible combinations of integers written on the blackboard after Snuke performs the operations, modulo $1,000,000,007$. ## Constraints * $1 \leq N \leq 200$ * $1 \leq A_i \leq 10^{18}$ * $1 \leq K \leq 10^{18}$ * $A_i$ and $K$ are integers. ## Input Input is given from Standard Input in the following format: $N$ $K$ $A_1$ $A_2$ $...$ $A_N$ [samples]
Samples
Input #1
2 2
5 7
Output #1
6

There are six possible combinations of integers on the blackboard: $(1, 1)$, $(1, 2)$, $(2, 3)$, $(3, 5)$, $(4, 6)$ and $(5, 7)$. For example, $(1, 2)$ can be obtained by performing Operation A and Operation B in this order.
Input #2
3 4
10 13 22
Output #2
20
Input #3
1 100
10
Output #3
11
Input #4
10 123456789012345678
228344079825412349 478465001534875275 398048921164061989 329102208281783917 779698519704384319 617456682030809556 561259383338846380 254083246422083141 458181156833851984 502254767369499613
Output #4
164286011
API Response (JSON)
{
  "problem": {
    "name": "Shift and Decrement",
    "description": {
      "content": "There are $N$ non-negative integers written on the blackboard: $A_1, ..., A_N$. Snuke can perform the following two operations at most $K$ times in total in any order: *   Operation A: Replace each i",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "arc086_d"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "There are $N$ non-negative integers written on the blackboard: $A_1, ..., A_N$.\nSnuke can perform the following two operations at most $K$ times in total in any order:\n\n*   Operation A: Replace each i...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments