#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
using ll = long long;
#define int ll
#define ff first
#define ss second
struct Emp {
int v,cl,ch,cli,chi,clc,chc;
Emp(){}
Emp(int _v, int _cl, int _ch) : v(_v), cl(_cl), ch(_ch) {};
Emp(int _v, pair<int,int> _cl, pair<int,int> _ch) {
v = _v;
cl = _cl.ff;
cli = _cl.ss;
ch = _ch.ff;
chi = _ch.ss;
clc = max(0LL,cl-v);
chc = max(0LL,ch-v);
};
};
signed main() {
int n; cin >> n;
vector<pair<int,int>> a(n+1); for(int i = 0; i < n+1; i++) cin >> a[i].first;
vector<int> b(n); for(int i = 0; i < n; i++) cin >> b[i];
for(int i = 0; i < n+1; i++) a[i].second = i;
sort(a.begin(),a.end());
sort(b.begin(),b.end());
vector<Emp> e(n);
for(int i = 0; i < n; i++) {
e[i] = Emp(b[i],a[i],a[i+1]);
}
map<int,int> dc;
vector<int> ans(n+1);
for(int i = 0; i < n; i++) {
dc[e[i].chc]++;
}
for(int i = 0; i < n; i++) {
ans[e[i].cli] = dc.rbegin()->first;
dc[e[i].chc]--;
if(dc[e[i].chc]==0) dc.erase(e[i].chc);
dc[e[i].clc]++;
}
ans[e[n-1].chi] = dc.rbegin()->first;
for(int i : ans) cout << i << " ";
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |