# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
286141 | reymontada61 | Just Long Neckties (JOI20_ho_t1) | C++14 | 639 ms | 18680 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int n;
const int MXN = 200005;
pair<int, int> arr[MXN];
int brr[MXN];
multiset<int> pairs;
void join(int a, int b) {
int x = max(0, arr[a].first - brr[b]);
pairs.insert(x);
}
void unjoin(int a, int b) {
int x = max(0, arr[a].first - brr[b]);
pairs.erase(pairs.lower_bound(x));
}
int score() {
return *(--pairs.end());
}
signed main() {
cin >> n;
for (int i=1; i<=n+1; i++) {
cin >> arr[i].first;
arr[i].second = i;
}
for (int i=1; i<=n; i++) {
cin >> brr[i];
}
sort(arr+1, arr+n+2);
sort(brr+1, brr+n+1);
for (int i=1; i<=n; i++) {
join(i+1, i);
}
vector<int> ans(n+2);
ans[arr[1].second] = score();
for (int i=1; i<=n; i++) {
unjoin(i+1, i);
join(i, i);
ans[arr[i+1].second] = score();
}
for (int i=1; i<=n+1; i++) cout << ans[i] << ' '; cout << endl;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |