#include using namespace std; int main(){ int N; cin >> N; vector X(N); for (int i = 0; i < N; i++){ cin >> X[i]; } vector A(N); for (int i = 0; i < N; i++){ cin >> A[i]; } map mp; for (int i = 0; i < N; i++){ mp[X[i]] = i; } vector> E(N); for (int i = 0; i < N; i++){ if (mp.count(X[i] - A[i]) == 1){ int p = mp[X[i] - A[i]]; E[p].push_back(i); } if (mp.count(X[i] + A[i]) == 1){ int p = mp[X[i] + A[i]]; E[p].push_back(i); } } vector mx(N, 0); vector> P(N); for (int i = 0; i < N; i++){ P[i] = make_pair(X[i] + A[i], i); } sort(P.begin(), P.end(), greater>()); for (int i = 0; i < N; i++){ int p = P[i].second; if (mx[p] == 0){ mx[p] = X[p] + A[p]; queue Q; Q.push(p); while (!Q.empty()){ int v = Q.front(); Q.pop(); for (int w : E[v]){ if (mx[w] == 0){ mx[w] = X[p] + A[p]; Q.push(w); } } } } } for (int i = 0; i < N; i++){ cout << mx[i] - X[i] << endl; } }