이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "cross.h"
#include <algorithm>
#define II i.o*i.o - (i.o - i.i)*(i.o - i.i)
#define JJ j.o*j.o - (j.o - j.i)*(j.o - j.i)
struct list {
long long i, o;
bool operator()(list i, list j) {
if (II > JJ) return true;
else if (II == JJ) return i.o < j.o;
return false;
}
}d[1000001];
long long SelectCross(int K, std::vector<int> I, std::vector<int> O) {
int N = I.size();
for (int i = 0; i < N; i++)
d[i].i = I[i], d[i].o = O[i];
std::sort(d, d + N, list());
long long l1 = d[0].o, l2 = d[0].i;
for (int i = 1; i < K; i++) {
if (l1 > d[i].o) l1 = d[i].o;
if (l2 > d[i].i) l2 = d[i].i;
}
long long ans = l1 * l1 - (l1 - l2) * (l1 - l2);
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... |