灭罪「正直者之死」

Luogu
IDLGP9207
Time1000ms
Memory128MB
DifficultyP3
贪心传智杯
有一台计算器,使用 $k$ 位的带符号整型来对数字进行存储。也就是说,一个变量能够表示的范围是 $[-2^{k-1},2^{k-1})$。现在我们希望使用该计算器计算一系列数 $a_1,a_2,\cdots,a_n$ 的和。计算的伪代码如下: ![](https://cdn.luogu.com.cn/upload/image_hosting/7p0loptk.png) 由于奇怪的特性,如果两个变量在相加时得到的结果在 $[-2^{k-1},2^{k-1})$ 之外,即发生了溢出,那么这台计算器就会卡死,再也无法进行计算了。 为了防止这样的事情发生,一个变通的方法是**更改 $a_i$ 的排列顺序**。容易发现这样不会改变计算出的和的值。 不过,可能不存在一种方案,使得计算出这 $n$ 个数并且计算机不爆炸。但我们还是希望,计算出**尽量多**的数字的和。 ## Input 第一行有两个整数 $n,k$,分别表示元素个数和整型位数。 第二行有 $n$ 个整数 $a_1,a_2,\cdots,a_n$。 ## Output 共一行一个整数,表示最多能将多少个数字计算出和。 [samples] ## Background 正直的人,坚强不屈的人,刚正不阿的人。 大约这样的人会处处吃亏吧,不过这样的观点大约是从欺骗者的眼光里看到的。正直的人,即使是在死后,也是最为人尊敬的吧。 ## Note ### 样例解释 - 对于样例 $1$,一种最优的方案是 $[a_1,a_2,a_3]$,这样可以在计算出前两个数的情况下不溢出。 - 对于样例 $2$,一种最优的方案是 $[a_{10},a_1,a_2,a_5,a_4,a_7,a_6,a_8,a_9,a_3]$,这样可以在计算前 $9$ 个数的情况下不溢出。 ### 数据范围及约定 对于全部数据,保证 $1\le n\le 500$,$1< k\le 8$,$-2^{k-1}\le a_i<2^{k-1}$。
Samples
Input #1
3 3
1 2 3
Output #1
2
Input #2
10 4
-3 5 6 -4 5 3 -4 1 -1 0
Output #2
9
API Response (JSON)
{
  "problem": {
    "name": "灭罪「正直者之死」",
    "description": {
      "content": "有一台计算器,使用 $k$ 位的带符号整型来对数字进行存储。也就是说,一个变量能够表示的范围是 $[-2^{k-1},2^{k-1})$。现在我们希望使用该计算器计算一系列数 $a_1,a_2,\\cdots,a_n$ 的和。计算的伪代码如下: ![](https://cdn.luogu.com.cn/upload/image_hosting/7p0loptk.png) 由于奇怪的特性,如果两个",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 131072
    },
    "difficulty": {
      "LuoguStyle": "P3"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP9207"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "有一台计算器,使用 $k$ 位的带符号整型来对数字进行存储。也就是说,一个变量能够表示的范围是 $[-2^{k-1},2^{k-1})$。现在我们希望使用该计算器计算一系列数 $a_1,a_2,\\cdots,a_n$ 的和。计算的伪代码如下:\n\n![](https://cdn.luogu.com.cn/upload/image_hosting/7p0loptk.png)\n\n由于奇怪的特性,如果两个...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments