Submission #306601

#TimeUsernameProblemLanguageResultExecution timeMemory
306601sofapudenJust Long Neckties (JOI20_ho_t1)C++14
100 / 100
609 ms25080 KiB
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

int main(){
	ll n; cin >> n;
	vector<pair<ll,int>> v(n+1), x(n);
	int cn = 0;
	for(auto &i : v){cin >> i.first;i.second = cn;cn++;}
	cn = 0;
	for(auto &i : x){cin >> i.first;i.second = cn;cn++;}
	sort(v.begin(), v.end());
	sort(x.begin(), x.end());
	vector<int> out(n+1);
	map<ll,int> M;
	for(int i = 1; i <= n; ++i){
		M[max(0LL,v[i].first-x[i-1].first)]++;
	}
	out[v[0].second] = M.rbegin()->first;
	for(int i = 1; i <= n; ++i){
		M[max(0LL,v[i].first-x[i-1].first)]--;
		M[max(0LL,v[i-1].first-x[i-1].first)]++;
		if(!M[max(0LL,v[i].first-x[i-1].first)])M.erase(max(0LL,v[i].first-x[i-1].first));
		out[v[i].second] = M.rbegin()->first;
	}
	for(auto i : out)cout << i << " ";
	cout << "\n";
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...