CF425A.Sereja and Swaps

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

As usual, Sereja has array a, its elements are integers: a[1], a[2], ..., a[n]. Let's introduce notation:

A swap operation is the following sequence of actions:

  • choose two indexes i, j (i ≠ j);
  • perform assignments tmp = a[i], a[i] = a[j], a[j] = tmp.

What maximum value of function m(a) can Sereja get if he is allowed to perform at most k swap operations?

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

一次交换操作定义为以下步骤:

  • 选择两个下标 i, ji,\,j(满足 i≠ji \ne j);
  • 执行赋值操作:tmp=a[i],  a[i]=a[j],  a[j]=tmp\text{tmp} = a[i],\; a[i] = a[j],\; a[j] = \text{tmp}。

如果 Sereja 最多可以执行 kk 次交换操作,那么函数 m(a)m(a) 的最大可能值是多少?

输入格式

The first line contains two integers n and k (1 ≤ n ≤ 200; 1 ≤ k ≤ 10). The next line contains n integers a[1], a[2], ..., a[n] ( - 1000 ≤ a[i] ≤ 1000).

第一行包含两个整数 nn 和 kk(1≤n≤2001 \leq n \leq 200;1≤k≤101 \leq k \leq 10)。
第二行包含 nn 个整数 a[1],a[2],…,a[n]a[1], a[2], \dots, a[n](−1000≤a[i]≤1000-1000 \leq a[i] \leq 1000)。

输出格式

In a single line print the maximum value of m(a) that Sereja can get if he is allowed to perform at most k swap operations.

在一行中输出 Sereja 最多执行 kk 次交换操作所能得到的 m(a)m(a) 的最大值。

输入输出样例

  • 输入#1

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

    输出#1

    32
  • 输入#2

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

    输出#2

    -1

输入解题思路,AI测评打分。不知道怎么写?

首页