Submission #1273161

#TimeUsernameProblemLanguageResultExecution timeMemory
1273161Mauricio_CruzJust Long Neckties (JOI20_ho_t1)C++20
0 / 100
0 ms332 KiB
#include <bits/stdc++.h>
using namespace std;

#define ios ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

#define f first
#define s second
#define pb push_back
#define ve vector
#define pii pair<int,int>
#define vi vector<int>

#define fr(n)for(int i=0;i<n;i++)
#define int long long


int32_t main(){
	
	ios;
	
	int n;
	cin>>n;
	ve<pii> a(n+1),b(n);
	for(int i=0;i<=n;i++){
		int k;
		cin>>k;
		a[i]={k,i};
	}
	for(int i=0;i<n;i++){
		int k;
		cin>>k;
		b[i]={k,i};
	}
	
	
	ve<pii> x=a,y=b;
	sort(x.begin(),x.end());
	sort(y.begin(),y.end());
	vi r1(n+2,0),r2(n+2,0);
	for(int i=0;i<n;i++){
		r1[i]=max(0LL,x[i].f-y[i].f);
		if(i)r1[i]=max(r1[i],r1[i-1]);
	}
	map<int,int>m;
	for(int i=n-1;i>=0;i--){
		r2[i]=max(0LL,x[i+1].f-y[i].f);
		if(i!=0)r2[i]=max(r2[i],r2[i-1]);
	}
	vi r(n+1,0);
	for(int i=0;i<=n;i++){
		int res=r2[i];
		if(i)res=max(res,r1[i-1]);
		r[x[i].s]=res;
	}
	for(int i:r)cout<<i<<" ";
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...