#3040. Sereja and Swaps

Sereja and Swaps

Sereja and Swaps

题目描述

和往常一样,Sereja 有一个数组 aa,其元素均为整数:a[1],a[2],...,a[n]a[1],a[2],...,a[n]。我们引入如下记号:

一次交换操作是指以下一系列动作:

  • 选择两个下标 i,ji, j 且 i≠ji \ne j;
  • 执行 tmp=a[i], a[i]=a[j], a[j]=tmptmp = a[i],\ a[i] = a[j],\ a[j] = tmp 的赋值操作。

如果最多允许进行 kk 次交换操作,Sereja 最多能获得函数 m(a)m(a) 的多少最大值?

输入格式

第一行包含两个整数 nn 和 kk,满足 1≤n≤2001 \le n \le 200,1≤k≤101 \le k \le 10。下一行包含 nn 个整数 a[1]a[1]、a[2]a[2]、...、a[n]a[n],满足 −1000≤a[i]≤1000-1000 \le a[i] \le 1000。

输出格式

输出一个整数,表示如果最多允许 kk 次交换操作,Sereja 可以获得的 m(a)m(a) 的最大值。

输入输出样例 #1

输入 #1

10 2
10 -1 2 2 2 2 2 2 -1 10

输出 #1

32

输入输出样例 #2

输入 #2

5 10
-1 -1 -1 -1 -1

输出 #2

-1

说明/提示

由 ChatGPT 5 翻译