제출 #1316112

#제출 시각아이디문제언어결과실행 시간메모리
1316112nambanana987Just Long Neckties (JOI20_ho_t1)C++20
100 / 100
67 ms11640 KiB
#include <bits/stdc++.h> #include <climits> using namespace std; #define f first #define s second #define all(a) a.begin(),a.end() #define sz(a) (int)a.size() #define int long long const int N=2e5+5; pair<int,int> A[N]; int B[N]; int suf_dif[N],pre_dif[N]; int ans[N]; int n; void solve(){ cin>>n; for(int i=1;i<=n+1;++i){ cin>>A[i].f; A[i].s=i; } for(int i=1;i<=n;++i) cin>>B[i]; sort(A+1,A+n+2); sort(B+1,B+n+1); for(int i=1;i<=n;++i) pre_dif[i]=max(A[i].f-B[i],0ll); for(int i=1;i<=n+1;++i) suf_dif[i]=max(A[i].f-B[i-1],0ll); //for(int i=1;i<=n+1;++i) cout<<suf_dif[i]<<' ';cout<<'\n'; //for(int i=1;i<=n;++i) cout<<pre_dif[i]<<' ';cout<<'\n'; for(int i=1;i<=n;++i) pre_dif[i]=max(pre_dif[i],pre_dif[i-1]); for(int i=n+1;i>=1;--i) suf_dif[i]=max(suf_dif[i],suf_dif[i+1]); for(int i=1;i<=n+1;++i){ ans[A[i].s]=max(pre_dif[i-1],suf_dif[i+1]); } for(int i=1;i<=n+1;++i) cout<<ans[i]<<' '; } signed main(){ ios_base::sync_with_stdio(0);cin.tie(0); int T=1; while(T--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...