답안 #1040509

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1040509 2024-08-01T06:36:26 Z joelgun14 Just Long Neckties (JOI20_ho_t1) C++17
0 / 100
0 ms 348 KB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define endl "\n"
#define ll long long
#define mp make_pair
#define ins insert
#define lb lower_bound
#define pb push_back
#define ub upper_bound
#define lll __int128
#define fi first
#define se second
using namespace std;
using namespace __gnu_pbds;
typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_multiset;
typedef tree<int, null_type, less<int>, rb_tree_tag,tree_order_statistics_node_update> ordered_set;
int main() {
  ios_base::sync_with_stdio(0); cin.tie(NULL);
  int n;
  cin >> n;
  pair<int, int> a[n + 2];
  int b[n + 1], pref[n + 1], suff[n + 3];
  for(int i = 1; i <= n + 1; ++i) 
    cin >> a[i].fi, a[i].se = i;
  for(int i = 1; i <= n; ++i)
    cin >> b[i];
  pref[0] = suff[n + 2] = 0;
  sort(b + 1, b + n + 1);
  sort(a + 1, a + n + 2);
  for(int i = 1; i <= n; ++i) {
    pref[i] = max(pref[i - 1], abs(a[i].fi - b[i]));
  }
  for(int i = n + 1; i >= 2; --i) {
    suff[i] = max(suff[i + 1], abs(a[i].fi - b[i - 1]));
  }
  int ans[n + 2];
  for(int i = 1; i <= n + 1; ++i)
    ans[a[i].se] = max(pref[i - 1], suff[i + 1]);
  for(int i = 1; i <= n + 1; ++i)
    cout << ans[i] << " ";
  cout << endl;
  return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -