제출 #39730

#제출 시각아이디문제언어결과실행 시간메모리
39730funcsr휴가 (IOI14_holiday)C++14
47 / 100
387 ms4304 KiB
#include "holiday.h" #include <iostream> #include <vector> #include <cassert> #include <set> #include <algorithm> #include <map> #include <queue> using namespace std; typedef pair<int, int> P; #define rep(i, n) for (int i=0; i<(n); i++) #define all(x) x.begin(), x.end() #define pb push_back #define INF (1LL<<60) #define _1 first #define _2 second int N, D; int A[100000]; long long solve(int start) { long long m = 0; rep(left, start+1) { int rest = D-(start-left)*2; if (rest < 0) continue; priority_queue<P, vector<P>, greater<P> > pq; long long sum = 0; for (int x=left; x<start; x++) sum += A[x], pq.push(P(A[x], x)); for (int r=start; r<N; r++) { int cnt = rest-(r-start); if (cnt <= 0) break; sum += A[r]; pq.push(P(A[r], r)); while (pq.size() > cnt) { sum -= pq.top()._1; pq.pop(); } m = max(m, sum); } } return m; } long long int findMaxAttraction(int n, int start, int d, int attraction[]) { N = n, D = d; rep(i, N) A[i] = attraction[i]; long long m = 0; if (start == 0) { priority_queue<P, vector<P>, greater<P> > pq; long long sum = 0; for (int r=0; r<min(D, N); r++) { int cnt = D-r; sum += A[r]; pq.push(P(A[r], r)); while (pq.size() > cnt) { sum -= pq.top()._1; pq.pop(); } m = max(m, sum); } } else if (N <= 3000) { m = max(m, solve(start)); reverse(A, A+N); m = max(m, solve(N-1-start)); } else abort(); return m; }

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

holiday.cpp: In function 'long long int solve(int)':
holiday.cpp:33:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       while (pq.size() > cnt) {
                        ^
holiday.cpp: In function 'long long int findMaxAttraction(int, int, int, int*)':
holiday.cpp:54:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       while (pq.size() > cnt) {
                        ^
grader.cpp: In function 'int main()':
grader.cpp:7:12: warning: variable 'n_s' set but not used [-Wunused-but-set-variable]
     int i, n_s;
            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...