This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define lalala ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define endl "\n"
#define ll long long
#define pb push_back
#define N 200005
map<pair<int,int>,int>mp;
int main(){
lalala;
int n;cin>>n;
vector<pair<ll int,int>> arr;
vector<ll int> mus;
ll int cev[n+1];
for(int i=0;i<n+1;i++){
ll int a;cin>>a;
arr.pb({a,i});
}
for(int i=0;i<n;i++){
ll int a;cin>>a;
mus.pb(a);
}
sort(arr.begin(),arr.end());sort(mus.begin(),mus.end());
priority_queue<tuple<ll int ,int,int>> pq;
for(int i=0;i<n;i++){
if(mus[i]>arr[i+1].first){
pq.push({(ll int)0,i,i+1});
}
else pq.push({arr[i+1].first-mus[i],i,i+1});
}
ll int a,b,c;
tie(a,b,c)=pq.top();
cev[arr[0].second]=a;
for(int i=1;i<=n;i++){
pq.push({max(arr[i-1].first-mus[i-1],(ll int)0),i-1,i-1});
mp[{i-1,i}]=1;
tie(a,b,c)=pq.top();
while(mp[{b,c}]){
pq.pop();
tie(a,b,c)=pq.top();
}
cev[arr[i].second]=a;
}
for(int i=0;i<=n;i++)cout<<cev[i]<<" ";
cout<<endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |