Submission #162048

#TimeUsernameProblemLanguageResultExecution timeMemory
162048oolimryHoliday (IOI14_holiday)C++14
24 / 100
5082 ms2388 KiB
#include "holiday.h"
#include <bits/stdc++.h>
using namespace std;

long long int findMaxAttraction(int n, int start, int d, int arr[]) {
	
	long long ovans = 0;
	
	
	
	
	
	for(int l = start; l >= 0;l--){
		priority_queue<long long, vector<long long>, greater<long long> > pq;
		long long ans = 0;
		long long visit = d - 2 * abs(l-start);
		
		for(int i = l;i <= start;i++){
			ans += arr[i];
			pq.push(arr[i]);
		}
		
		for(int r = start;r < n;r++){
			if(visit <= 0) break;
			if(r != start){
				pq.push(arr[r]);
				ans += arr[r];
			}
			while(pq.size() > visit){
				ans -= pq.top();
				pq.pop();
			}
			//cout << l << " " << r << " " << visit << " " << ans << "\n";
			ovans = max(ans,ovans);
			visit--;
		}
	}
	
	
	reverse(arr,arr+n);
	start = n-start-1;
	
	for(int l = start; l >= 0;l--){
		priority_queue<long long, vector<long long>, greater<long long> > pq;
		long long ans = 0;
		long long visit = d - 2 * abs(l-start);
		
		for(int i = l;i <= start;i++){
			ans += arr[i];
			pq.push(arr[i]);
		}
		
		for(int r = start;r < n;r++){
			if(visit <= 0) break;
			if(r != start){
				pq.push(arr[r]);
				ans += arr[r];
			}
			while(pq.size() > visit){
				ans -= pq.top();
				pq.pop();
			}
			//cout << l << " " << r << " " << visit << " " << ans << "\n";
			ovans = max(ans,ovans);
			visit--;
		}
	}
	
	return ovans;
}

Compilation message (stderr)

holiday.cpp: In function 'long long int findMaxAttraction(int, int, int, int*)':
holiday.cpp:29:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    while(pq.size() > visit){
          ~~~~~~~~~~^~~~~~~
holiday.cpp:59:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    while(pq.size() > visit){
          ~~~~~~~~~~^~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...