# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
18101 | comet | 휴가 (IOI14_holiday) | C++98 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "holiday.h"
#include <cstdio>
#include <algorithm>
#include <queue>
using namespace std;
typedef long long ll;
typedef priority_queue<ll> pq;
int N,D;
ll a[100000];
ll b[100000];
ll f(int L,int R){
pq Q;
for(int i=L;i<=R;i++){
Q.push(a[i]);
}
ll sum=0;
for(int i=0;i<D-(R-L+1);i++){
if(Q.empty())return sum;
sum+=Q.top();
Q.pop();
}
return sum;
}
ll finalMaxAttraction(int n,int start,int d,int attraction[]){
N=n;
D=d;
for(int i=0;i<n;i++){
a[i]=attraction[i];
}
for(int i=start;i<n;i++){
for(int j=start;(start-j)*2+(i-start)<=d;j--){
if(j<0)break;
b[i]=max(b[i],f(j,i));
}
}
for(int i=start;i>=0;i--){
for(int j=start;(j-start)*2+(start-i)<=d;j++){
if(j>=n)break;
b[i]=max(b[i],f(i,j));
}
}
ll ans=0;
for(int i=0;i<n;i++)ans=max(ans,b[i]);
return ans;
}