#include "holiday.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pi pair<int, int>
#define pl pair<ll, ll>
#define vi vector<int>
#define vl vector<ll>
#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(),(x).end()
ll findMaxAttraction(int n, int strt, int d, int att[]) {
ll ans=0;
for (int l=0; l<=min(strt,d); l++) {
ll t=0;
multiset<int> nums;
for (int i=strt-l; i<strt; i++) {
nums.insert(att[i]);
t+=att[i];
if (nums.size()>d-2*l) {
t-=*nums.begin();
nums.extract(nums.begin());
}
}
for (int r=0; r<=min(n-1-strt,d-2*l); r++) {
nums.insert(att[strt+r]);
t+=att[strt+r];
while (nums.size()>d-2*l-r) {
t-=*nums.begin();
nums.extract(nums.begin());
}
ans=max(ans,t);
}
}
for (int l=0; l<=min(strt,d); l++) {
ll t=0;
multiset<int> nums;
for (int i=strt-l; i<strt; i++) {
nums.insert(att[i]);
t+=att[i];
if (nums.size()>d-l) {
t-=*nums.begin();
nums.extract(nums.begin());
}
}
for (int r=0; r<=n-1-strt && d-l-2*r>=0; r++) {
nums.insert(att[strt+r]);
t+=att[strt+r];
while (nums.size()>d-l-2*r) {
t-=*nums.begin();
nums.extract(nums.begin());
}
ans=max(ans,t);
}
}
return ans;
}
# | 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... |