이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "cross.h"
#include <algorithm>
#include <utility>
#include <set>
std::vector<std::pair<int, int> > p;
std::multiset<int> st;
long long SelectCross(int K, std::vector<int> I, std::vector<int> O) {
int N = I.size();
for (int i = 0; i < N; i++)
p.push_back(std::make_pair(O[i], I[i]));
std::sort(p.begin(), p.end()); std::reverse(p.begin(), p.end());
for (int i = 0; i < K - 1; i++)
st.insert(p[i].second);
st.insert(2000000000);
auto si = st.begin();
long long ans = 0;
for (int i = K - 1; i < N; i++) {
int t = p[i].first - std::min((*si), p[i].second);
ans = std::max(ans, 1LL * p[i].first * p[i].first - 1LL * t * t);
if (p[i].second >(*si)) {
st.insert(p[i].second); ++si;
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |