Submission #1314298

#TimeUsernameProblemLanguageResultExecution timeMemory
1314298yus1f_mJust Long Neckties (JOI20_ho_t1)C++20
0 / 100
0 ms332 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> #define ll long long #define str string #define pb push_back #define pf push_front #define in insert #define all(v) v.begin(),v.end() const int sz=1000000,INF=1000000000; using namespace std; void solve() { ll n,num1,num2; cin>>n; vector<ll>nums2,prefs(n+3,-INF),sufs(n+3,-INF),ans(n+1); vector<pair<ll,ll>>nums1; for(int i=0;i<n+1;i++) { cin>>num1; nums1.pb({num1,i}); } for(int i=0;i<n;i++) { cin>>num2; nums2.pb(num2); } sort(all(nums1)),sort(all(nums2)); for(int i=0;i<nums1.size()-1;i++) { prefs[i+1]=max(prefs[i],max(0LL,nums1[i].first-nums2[i])); } for(int i=nums1.size()-1;i>=1;i--) { sufs[i+1]=max(sufs[i+2],max(0LL,nums1[i].first-nums2[i-1])); } for(int i=0;i<nums1.size();i++) { if(i==0) { ans[nums1[i].second]=sufs[2]; } else if(i==nums1.size()-1) { ans[nums1[i].second]=prefs[n]; } else { ans[nums1[i].second]=max(prefs[i],sufs[i+1]); } } for(int i=0;i<=n;i++) { cout<<ans[i]<<" "; } } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr),cout.tie(nullptr); ll t=1; //cin>>t; while(t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...