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...