제출 #1198554

#제출 시각아이디문제언어결과실행 시간메모리
1198554Muhammad_Aneeq휴가 (IOI14_holiday)C++17
47 / 100
5089 ms6244 KiB
#include"holiday.h" #include <algorithm> #include <vector> #include <iostream> #include <set> using namespace std; #define ll long long ll const N=1e5+10; vector<ll>a; ll st; ll n; long long int findMaxAttraction(int N, int start, int d, int attraction[]) { st=start; n=N; for (ll i=0;i<n;i++) a.push_back(attraction[i]); multiset<int>s; ll ans=0; ll cur=0; for (int i=st;i<n;i++) { s.insert(a[i]); cur+=a[i]; while (s.size()&&s.size()+i-st>d) { cur-=*begin(s); s.erase(begin(s)); } ans=max(ans,cur); } cur=0; s={}; for (int i=st;i>=0;i--) { s.insert(a[i]); cur+=a[i]; while (s.size()&&s.size()+st-i>d) { cur-=*begin(s); s.erase(begin(s)); } ans=max(ans,cur); } if (st!=0&&st!=n-1) { for (int l=0;l<st;l++) { s={}; cur=0; for(int j=l;j<=st;j++) { cur+=a[j]; s.insert(a[j]); } for (int r=st+1;r<n;r++) { s.insert(a[r]); cur+=a[r]; while (s.size()&&s.size()+(r-st)+(st-l)+min(r-st,st-l)>d) { cur-=*begin(s); s.erase(begin(s)); } ans=max(ans,cur); } } } 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...