제출 #643744

#제출 시각아이디문제언어결과실행 시간메모리
643744PagodePaivaJust Long Neckties (JOI20_ho_t1)C++17
100 / 100
132 ms19960 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...