私信TA

用户名:dotcpp0729550

访问量:860

签 名:

等  级
排  名 36382
经  验 419
参赛次数 0
文章发表 5
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

挖 矿
浏览:163
砍 柴
浏览:261

解题思路:

注意事项:

参考代码:N = int(2e6 + 10)
n, m = map(int, input().split())
a = list(map(int, input().split()))
l = [0 for i in range(N)]
r = [0 for i in range(N)]
for x in a:
   if x > 0:
       r[x] += 1
   elif x < 0:
       l[-x] += 1
for i in range(1, N):
   l[i] += l[i - 1]
   r[i] += r[i - 1]
res = 0
for i in range(1, m + 1):
   s = l[i]
   if m - 2 * i > 0:
       s += r[m - 2 * i]
   res = max(res, s)
for i in range(1, m + 1):
   s = r[i]
   if m - 2 * i > 0:
       s += l[m - 2 * i]
   res = max(res, s)
for x in a:
   if x == 0:
       res += 1
print(res)

 

0.0分

1 人评分

  评论区

  • «
  • »