Submission #201539

#TimeUsernameProblemLanguageResultExecution timeMemory
201539MilosMilutinovicJust Long Neckties (JOI20_ho_t1)C++14
100 / 100
313 ms11664 KiB
#include<bits/stdc++.h>
using namespace std;
int main()
{
        long long n;
	cin>>n;
	vector<pair<long long,long long> > a(n+2);
	long long b[n+2];
	for(long long i=1;i<=n+1;i++)
	{
		cin>>a[i].first;
		a[i].second=i;
	}
	for(long long i=1;i<=n;i++)
		cin>>b[i];
       	sort(a.begin(),a.end());
       	sort(b+1,b+n+1);
       	long long l[n+2],r[n+2];
       	for(long long i=1;i<=n;i++)
       	{
       		if(i==1)
       			l[i]=a[i].first-b[i];
     		else
     			l[i]=max(l[i-1],a[i].first-b[i]);
     	}
     	for(long long i=n+1;i>1;i--)
     	{
     		if(i==n+1)
     			r[i]=a[i].first-b[i-1];
    		else
    			r[i]=max(r[i+1],a[i].first-b[i-1]);
    	}
	long long ans[n+2];
	for(long long i=1;i<=n+1;i++)
	{
		long long j=a[i].second;
		if(i==1)
			ans[j]=r[i+1];
		else
		{
			if(i==n+1)
				ans[j]=l[i-1];
			else
				ans[j]=max(l[i-1],r[i+1]);
		}
	}
	for(long long i=1;i<=n+1;i++)
		cout<<max(ans[i],(long long)0)<<" ";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...