Submission #245146

#TimeUsernameProblemLanguageResultExecution timeMemory
245146uacoder123Just Long Neckties (JOI20_ho_t1)C++14
100 / 100
126 ms12536 KiB
#include <bits/stdc++.h> using namespace std; #define F first #define S second #define FOR(i,a,b) for (auto i = (a); i <= (b); ++i) #define NFOR(i,a,b) for(auto i = (a); i >= (b); --i) #define all(x) (x).begin(), (x).end() #define sz(x) int(x.size()) #define mp(i,a) make_pair(i,a) #define pb(a) push_back(a) #define bit(x,b) (x&(1LL<<b)) typedef long long int lli; typedef pair <lli,lli> ii; typedef pair <lli,ii> iii; typedef vector <lli> vi; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); lli test=1; for(;test>0;--test) { int n; cin>>n; int arr[n],ans[n+1],sam[n],nex[n]; ii nt[n+1]; for(int i=0;i<=n;++i) { cin>>nt[i].F; nt[i].S=i; } sort(nt,nt+n+1); for(int i=0;i<n;++i) cin>>arr[i]; sort(arr,arr+n); sam[0]=nt[0].F-arr[0]; nex[n-1]=nt[n].F-arr[n-1]; for(int i=1;i<n;++i) sam[i]=max(sam[i-1]*1LL,max(0*1LL,nt[i].F-arr[i])); for(int i=n-2;i>=0;--i) nex[i]=max(nex[i+1]*1LL,max(0*1LL,nt[i+1].F-arr[i])); for(int i=0;i<=n;++i) { if(i==0) ans[nt[i].S]=nex[0]; else if(i==n) ans[nt[i].S]=sam[n-1]; else ans[nt[i].S]=max(sam[i-1],nex[i]); } for(int i=0;i<=n;++i) cout<<ans[i]<<' '; cout<<endl; } return(0); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...