This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/// tree bends in youth
/// 1.10.2023
/// success is doing same thing in every single day!!!
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define all(x) x.begin(), x.end()
#define F first
#define S second
using namespace std;
const ll N =2e5 + 5;
const ll NN = 2e5;
const ll INF = 1e9;
const ll MOD = 1e9 + 7;
int a[15];
int n,k,ans;
bool used[15];
int b[15];
int p[15];
void per(int i){
if(i == k + 1){
ll res = 0; //// мы должны найти res
set <pair<int,int>> s;
s.insert({1,n});
for(int i = 1;i <= k;i++){
int l = 0,r = 0;
for(pair<int,int> to : s){
if(to.F <= p[i] && to.S >= p[i]){
l = to.F,r = to.S;
break;
}
}
ll left = 0,right = 0;
for(int j = l;j <= p[i];j++){
left += a[j];
}
for(int j = p[i]+ 1;j <= r;j++){
right += a[j];
}
res += (right * left);
s.erase({l,r});
s.insert({l,p[i]});
s.insert({p[i] + 1,r});
}
if(res > ans){
ans= res;
for(int i = 1;i <= k;i++){
b[i] = p[i];
}
}
}
else{
for(int j = 1;j <= n;j++){
if(used[j] == 0){
used[j] = 1;
p[i] = j;
per(i + 1);
used[j] = 0;
}
}
}
}
void solve(){
cin >> n >> k;
for(int i= 1;i <= n;i++){
cin >> a[i];
}
per(1);
cout << ans << '\n';
for(int i = 1;i <= k;i++){
cout << b[i] << ' ';
}
}
main (){
ios_base::sync_with_stdio(0);
cin.tie(0);
// freopen("moocrypt.in","r",stdin);
// freopen("moocrypt.out","w",stdout);
ll abd= 1;
// cin >> abd;
for(ll i = 1;i <= abd;i++){
// cout << "Case " << i << ": ";
solve();
}
}
Compilation message (stderr)
sequence.cpp:74:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
74 | main (){
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |