Submission #15696

#TimeUsernameProblemLanguageResultExecution timeMemory
15696gs14004Holiday (IOI14_holiday)C++14
47 / 100
5000 ms2248 KiB
#include"holiday.h"
#include <queue>
using namespace std;
typedef long long lint;
priority_queue<int, vector<int>, greater<int> > pq;

long long int findMaxAttraction(int n, int start, int d, int attraction[]) {
	lint ret = 0;
	for(int i=0; i<=start; i++){
		lint cret = 0;
		for(int j=i; j<start; j++){
			pq.push(attraction[j]);
			cret += attraction[j];
		}
		for(int j=start; j<n; j++){
			pq.push(attraction[j]);
			cret += attraction[j];
			while(!pq.empty() && (int)pq.size() > d - (j - i + min(j - start, start - i) )){
				cret -= pq.top();
				pq.pop();
			}
			ret = max(ret, cret);
		}
		while(!pq.empty()) pq.pop();
	}
	return ret;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...