310519: CF1845E. Boxes and Balls

Memory Limit:256 MB Time Limit:5 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

E. Boxes and Ballstime limit per test5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

There are $n$ boxes placed in a line. The boxes are numbered from $1$ to $n$. Some boxes contain one ball inside of them, the rest are empty. At least one box contains a ball and at least one box is empty.

In one move, you have to choose a box with a ball inside and an adjacent empty box and move the ball from one box into another. Boxes $i$ and $i+1$ for all $i$ from $1$ to $n-1$ are considered adjacent to each other. Boxes $1$ and $n$ are not adjacent.

How many different arrangements of balls exist after exactly $k$ moves are performed? Two arrangements are considered different if there is at least one such box that it contains a ball in one of them and doesn't contain a ball in the other one.

Since the answer might be pretty large, print its remainder modulo $10^9+7$.

Input

The first line contains two integers $n$ and $k$ ($2 \le n \le 1500$; $1 \le k \le 1500$) — the number of boxes and the number of moves.

The second line contains $n$ integers $a_1, a_2, \dots, a_n$ ($a_i \in \{0, 1\}$) — $0$ denotes an empty box and $1$ denotes a box with a ball inside. There is at least one $0$ and at least one $1$.

Output

Print a single integer — the number of different arrangements of balls that can exist after exactly $k$ moves are performed, modulo $10^9+7$.

ExamplesInput
4 1
1 0 1 0
Output
3
Input
4 2
1 0 1 0
Output
2
Input
10 6
1 0 0 1 0 0 0 1 1 1
Output
69
Note

In the first example, there are the following possible arrangements:

  • 0 1 1 0 — obtained after moving the ball from box $1$ to box $2$;
  • 1 0 0 1 — obtained after moving the ball from box $3$ to box $4$;
  • 1 1 0 0 — obtained after moving the ball from box $3$ to box $2$.

In the second example, there are the following possible arrangements:

  • 1 0 1 0 — three ways to obtain that: just reverse the operation performed during the first move;
  • 0 1 0 1 — obtained from either of the first two arrangements after the first move.

Input

题意翻译

给定一个长度为 $n$,由 $0,1$ 构成的数组 $a$。你可以对他进行以下操作: - 交换数列中一对相邻的 $0$ 和 $1$。 问在**恰好** $k$ 次操作后,可以产生多少种本质不同的数组。

Output

题目大意:
E. 盒子和球

有 n 个盒子排成一行,从 1 到 n 编号。一些盒子里有一个球,其余为空。至少有一个盒子里有球,至少有一个盒子为空。

每次操作,你**必须**选择一个带球的盒子和一个相邻的空盒子,并将球从一个盒子移动到另一个盒子。对于所有 1 到 n-1 的 i,盒子 i 和 i+1 被认为是相邻的。盒子 1 和 n **不**相邻。

在恰好执行 k 次移动后,存在多少种不同的球排列?如果至少有一个盒子在一个排列中有球而在另一个中没有,则认为这两个排列是不同的。

由于答案可能相当大,请输出其除以 10^9+7 的余数。

输入输出数据格式:
输入:
- 第一行包含两个整数 n 和 k(2 ≤ n ≤ 1500; 1 ≤ k ≤ 1500)—— 盒子的数量和移动次数。
- 第二行包含 n 个整数 a_1, a_2, …, a_n(a_i ∈ {0, 1})—— 0 表示空盒子,1 表示有球的盒子。至少有一个 0 和一个 1。

输出:
- 打印一个整数——在恰好执行 k 次移动后,可以存在的不同球排列的数量,模 10^9+7。

示例:
输入:
```
4 1
1 0 1 0
```
输出:
```
3
```

输入:
```
4 2
1 0 1 0
```
输出:
```
2
```

输入:
```
10 6
1 0 0 1 0 0 0 1 1 1
```
输出:
```
69
```题目大意: E. 盒子和球 有 n 个盒子排成一行,从 1 到 n 编号。一些盒子里有一个球,其余为空。至少有一个盒子里有球,至少有一个盒子为空。 每次操作,你**必须**选择一个带球的盒子和一个相邻的空盒子,并将球从一个盒子移动到另一个盒子。对于所有 1 到 n-1 的 i,盒子 i 和 i+1 被认为是相邻的。盒子 1 和 n **不**相邻。 在恰好执行 k 次移动后,存在多少种不同的球排列?如果至少有一个盒子在一个排列中有球而在另一个中没有,则认为这两个排列是不同的。 由于答案可能相当大,请输出其除以 10^9+7 的余数。 输入输出数据格式: 输入: - 第一行包含两个整数 n 和 k(2 ≤ n ≤ 1500; 1 ≤ k ≤ 1500)—— 盒子的数量和移动次数。 - 第二行包含 n 个整数 a_1, a_2, …, a_n(a_i ∈ {0, 1})—— 0 表示空盒子,1 表示有球的盒子。至少有一个 0 和一个 1。 输出: - 打印一个整数——在恰好执行 k 次移动后,可以存在的不同球排列的数量,模 10^9+7。 示例: 输入: ``` 4 1 1 0 1 0 ``` 输出: ``` 3 ``` 输入: ``` 4 2 1 0 1 0 ``` 输出: ``` 2 ``` 输入: ``` 10 6 1 0 0 1 0 0 0 1 1 1 ``` 输出: ``` 69 ```

加入题单

上一题 下一题 算法标签: