首页 > 代码库 > Codeforces Round #243 (Div. 2) C. Sereja and Swaps
Codeforces Round #243 (Div. 2) C. Sereja and Swaps
由于n比较小,直接暴力解决
#include <iostream> #include <vector> #include <algorithm> #include <numeric> #include <functional> #include<iterator> using namespace std; int main(){ int n,k; cin >> n >> k; vector<int> a(n); for(int i = 0 ; i < n; ++ i) cin >> a[i]; int sum = accumulate(a.begin(),a.end(),0); for(int i = 0 ; i < n; ++ i){ for(int j = i ; j < n ; ++ j ){ vector<int> tmp(a.begin()+i,a.begin()+j+1); sort(tmp.begin(),tmp.end()); if(j-i+1!=n){ vector<int> b(a); b.erase(b.begin()+i,b.begin()+j+1); sort(b.begin(),b.end(),greater<int>()); for(int x =0, y = 0; b[x]>tmp[y] && x < k && x < b.size(); ++x ,++y){ tmp[y] = b[x]; } } sum = max(sum,accumulate(tmp.begin(),tmp.end(),0)); } } cout<<sum<<endl; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。