Submission #298061

#TimeUsernameProblemLanguageResultExecution timeMemory
298061mieszko11bHoliday (IOI14_holiday)C++14
0 / 100
5061 ms5752 KiB
#include "holiday.h"
#include <bits/stdc++.h>

using namespace std;

using ll = long long;

long long int findMaxAttraction(int n, int start, int d, int attraction[]) {
	ll res = 0;
	
	vector<int> a(n);
	for(int i = 0 ; i < n ; i++)
		a[i] = attraction[i];
		
	for(int t = 0 ; t < 2 ; t++) {
		for(int i = start ; i >= 0 ; i--) {
			ll sum = 0;
			multiset<int> S;
			int d2 = d - (start - i);
			for(int j = i ; j < n ; j++) {
				S.insert(a[j]);
				sum += a[j];
				while(S.size() > d2 - (j - i)) {
					auto it = S.begin();
					sum -= *it;
					S.erase(it);
				}
				
				res = max(res, sum);
			}
		}
	
		reverse(a.begin(), a.end());
		start = n - start - 1;
	}
	
    return res;
}

Compilation message (stderr)

holiday.cpp: In function 'long long int findMaxAttraction(int, int, int, int*)':
holiday.cpp:23:20: warning: comparison of integer expressions of different signedness: 'std::multiset<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   23 |     while(S.size() > d2 - (j - i)) {
      |           ~~~~~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...