Submission #424407

#TimeUsernameProblemLanguageResultExecution timeMemory
424407dreezyHoliday (IOI14_holiday)C++17
23 / 100
20 ms1312 KiB
#include <bits/stdc++.h>
#include"holiday.h"
using namespace std;
#define ll long long


/***********************/


long long int findMaxAttraction(int n, int start, int d, int attraction[]) {
	ll ans = 0;
	

	//spend right days travelling
	//visit day - right cities
	
	
	
	
	for(int left = start; left >= 0; left--){
		ll cursum = 0;
		priority_queue<int, vector<int>, greater<int>> pq;
		cursum += attraction[left];
		pq.push(attraction[left]);
		

		for(int right = start; right <n; right++){
			if(right != left){
				cursum += attraction[right];
				pq.push(attraction[right]);
				
			}
			
			int dist = right - left + min(start - left, right - start);
			if(d - dist < 0) break;
			
			while(pq.size() > d - dist){
				cursum -= pq.top();
				pq.pop();
			}
		//	cout << left << ", "<<right<< ": "<<dist<<", "<<cursum<<endl;
			ans = max(cursum, ans);
		}
	}
	
	
    return ans;
}
/***********************/

Compilation message (stderr)

holiday.cpp: In function 'long long int findMaxAttraction(int, int, int, int*)':
holiday.cpp:37:20: warning: comparison of integer expressions of different signedness: 'std::priority_queue<int, std::vector<int>, std::greater<int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   37 |    while(pq.size() > d - dist){
      |          ~~~~~~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...