제출 #517012

#제출 시각아이디문제언어결과실행 시간메모리
517012amukkalirHoliday (IOI14_holiday)C++17
23 / 100
5056 ms1824 KiB
#include <bits/stdc++.h> #include "holiday.h" using namespace std; typedef long long ll; const int nax = 20; int n; int s, d; int cost (int l, int r) { return (r-l) + min(abs(s-l), abs(r-s)); } bool ok (int mask) { int l=n, r=0; for(int i=0; (1<<i)<=mask; i++) { if(mask & (1<<i)) { l = min(l, i); r = max(r, i); } } int travel = (r-l) + min(abs(s-l), abs(r-s)); return travel + __builtin_popcount(mask) <= d; } long long int findMaxAttraction(int N, int S, int D, int attraction[]) { n = N; s = S; d = D; ll ans = 0; priority_queue<ll, vector<ll>, greater<ll>> pq; ll sum = 0; for(int l=s; l>=0; l--) { while(!pq.empty()) pq.pop(); sum = 0; for(int i=l;i<n;i++){ int rem = d - cost(l,i); //if(d <= 0) break; sum += attraction[i]; pq.push(attraction[i]); while(pq.size() > rem) { sum -= pq.top(); pq.pop(); } //cout << l << ' ' << i << " " << rem << " " << sum << endl; ans = max(ans, sum); } } return ans; } /* */

컴파일 시 표준 에러 (stderr) 메시지

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