제출 #1234148

#제출 시각아이디문제언어결과실행 시간메모리
1234148kl0989e휴가 (IOI14_holiday)C++20
47 / 100
5092 ms5448 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...