Submission #162049

#TimeUsernameProblemLanguageResultExecution timeMemory
162049oolimry휴가 (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...