제출 #149567

#제출 시각아이디문제언어결과실행 시간메모리
149567dragoon (#200)십자가 놓기 (FXCUP4_cross)C++17
100 / 100
129 ms6888 KiB
#include "cross.h"
#include <utility>
#include <queue>
#include <algorithm>
using namespace std;

priority_queue<int> PQ;
vector<pair<int, int>> V;

long long SelectCross(int K, std::vector<int> I, std::vector<int> O) {
	int n = I.size();
	for (int i = 0; i < n; i++) {
		V.push_back({I[i], O[i]});
	}
	sort(V.begin(), V.end());
	reverse(V.begin(), V.end());
	for (int i = 0; i < K - 1; i++) {
		PQ.push(-V[i].second);
	}
	long long ret = 0;
	for (int i = K - 1; i < n; i++) {
		PQ.push(-V[i].second);
		if (PQ.size() > K) PQ.pop();
		long long o = -PQ.top();
		long long in = V[i].first;
		long long now = 2 * o * in - in * in;
		if (now > ret) ret = now;
	}
	return ret;
}

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

cross.cpp: In function 'long long int SelectCross(int, std::vector<int>, std::vector<int>)':
cross.cpp:23:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (PQ.size() > K) PQ.pop();
       ~~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...