Submission #586254

#TimeUsernameProblemLanguageResultExecution timeMemory
586254Tekor휴가 (IOI14_holiday)C++17
47 / 100
5016 ms6976 KiB
#include"holiday.h"

#include <bits/stdc++.h>
using namespace std;
#define pii pair <int,int>
#define f first
#define s second
#define mp make_pair
#define pb push_back
#define all(v) v.begin(),v.end()
#define ll long long
#define pll pair <ll,ll>
const int N = 3e5 + 100;
long long int findMaxAttraction(int n, int start, int d, int a[]) {
	ll ans = 0;
	if(start == 0) {
		set <pll> q;
		ll sum = 0;
	    for(int i = 0;i < n;i++) {
	    	q.insert(mp(a[i],i));
	    	sum += a[i];
	    	int ost = d - i;
	    	while(q.size() > ost) {
	    		pll vv = *(q.begin());
	    		q.erase(vv);
	    		sum -= vv.f;
			}
			ans = max(ans,sum);
		}
		return ans;
	}
	for(int L = start;L >= 0;L--) {
		set <pll> q;
		ll sum = 0;
		for(int j = start - 1;j >= L;j--) {
			q.insert(mp(a[j],j));
			sum += a[j];
		}
		for(int R = start;R < n;R++) {
			int dist = min(R - start + R - L,start - L + R - L);
			int ost = d - dist;
			if(ost <= 0)break;
			q.insert(mp(a[R],R));
			sum += a[R];
			while(q.size() > ost) {
	    		pll vv = *(q.begin());
	    		q.erase(vv);
	    		sum -= vv.f;
			}
			ans = max(ans,sum);
		}
	}
	return ans;
}

Compilation message (stderr)

holiday.cpp: In function 'long long int findMaxAttraction(int, int, int, int*)':
holiday.cpp:23:22: warning: comparison of integer expressions of different signedness: 'std::set<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   23 |       while(q.size() > ost) {
      |             ~~~~~~~~~^~~~~
holiday.cpp:45:19: warning: comparison of integer expressions of different signedness: 'std::set<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   45 |    while(q.size() > ost) {
      |          ~~~~~~~~~^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...