이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#define int long long
#define ms(v) memset(v, -1, sizeof v)
#define pb push_back
#define mp make_pair
#define ll long long int
#define pi pair <int,int>
#define itn int
#define fr first
#define sc second
#define srt(v) sort(v.begin(), v.end())
#define rvs(v) reverse(v.begin(), v.end())
#define mod 1000000007
#define INF 1e18
using namespace std;
int32_t main(){
ios::sync_with_stdio(false); cin.tie(0);
int n;
cin >> n;
vector <pi> a;
vector <int> b;
for(int i = 0;i <= n;i++){
int x;
cin >> x;
a.pb({x, i});
}
for(int i = 0;i < n;i++){
int x;
cin >> x;
b.pb(x);
}
srt(a);
srt(b);
int pref[n+1], suf[n+1];
pref[0] = max((0)*(1ll), a[0].fr - b[0]);
for(int i = 1;i < n;i++){
pref[i] = max(pref[i-1], a[i].fr - b[i]);
}
suf[n] = max((0)*(1ll), a[n].fr - b[n-1]);
for(int i = n-1;i > 0;i--){
suf[i] = max(suf[i+1], a[i].fr - b[i-1]);
}
vector <pi> resp;
for(int i = 0;i <= n;i++){
int res;
if(i == 0) res = suf[1];
else if(i == n) res = pref[n-1];
else res = max(pref[i-1], suf[i+1]);
resp.pb({a[i].sc, res});
}
srt(resp);
for(auto v : resp){
cout << v.sc << " ";
}
cout << "\n";
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... |