Submission #162049

#TimeUsernameProblemLanguageResultExecution timeMemory
162049oolimryHoliday (IOI14_holiday)C++14
47 / 100
5009 ms2032 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;
	if(n <= 3000){
		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:21: 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...