Submission #534127

#TimeUsernameProblemLanguageResultExecution timeMemory
534127Haruto810198Just Long Neckties (JOI20_ho_t1)C++17
100 / 100
252 ms21684 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define double long double #define FOR(i, l, r, d) for(int i=(l); i<=(r); i+=(d)) #define szof(x) ((int)(x).size()) #define vi vector<int> #define pii pair<int, int> #define F first #define S second #define pb push_back #define eb emplace_back #define mkp make_pair const int INF = INT_MAX; const int LNF = INF*INF; const int MOD = 1000000007; const double eps = 1e-12; // #pragma GCC optimize("Ofast") // #pragma GCC optimize("unroll-loops") const int MAX = 200010; int n; pii a[MAX]; int b[MAX]; multiset<int> st; int res[MAX]; signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n; FOR(i, 1, n+1, 1){ cin>>a[i].F; a[i].S = i; } FOR(i, 1, n, 1){ cin>>b[i]; } sort(a+1, a+n+2); sort(b+1, b+n+1); // 1 FOR(i, 1, n, 1){ st.insert(max(a[i+1].F - b[i], (int)0)); } res[a[1].S] = *prev(st.end()); // 2 ~ n+1 FOR(i, 2, n+1, 1){ st.erase(st.find(max(a[i].F - b[i-1], (int)0))); st.insert(max(a[i-1].F - b[i-1], (int)0)); res[a[i].S] = *prev(st.end()); } FOR(i, 1, n+1, 1){ cout<<res[i]<<' '; } cout<<'\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...