Submission #8422639


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  int N;
  cin >> N;
  int init_x_max, init_x_min, init_y_max, init_y_min;
  init_x_max = init_y_max = INT_MIN;
  init_x_min = init_y_min = INT_MAX;
  int h_y_min, h_y_max, v_x_min, v_x_max;
  h_y_min = v_x_min = INT_MAX;
  h_y_max = v_x_max = INT_MIN;
  int up_y_min, up_y_max, down_y_max, down_y_min, l_x_min, l_x_max, r_x_min, r_x_max;
  up_y_min = down_y_min = l_x_min = r_x_min = INT_MAX;
  up_y_max = down_y_max = l_x_max = r_x_max = INT_MIN;
  double ans;
  for (int i = 0; i < N; i++) {
    int x, y;
    char d;
    cin >> x >> y >>d;
    init_x_max = max(x, init_x_max);
    init_x_min = min(x, init_x_min);
    init_y_max = max(y, init_y_max);
    init_y_min = min(y, init_y_min);
    if (d == 'L') {
      l_x_max = max(x, l_x_max);
      l_x_min = min(x, l_x_min);
    } else if (d == 'R') {
      r_x_max = max(x, r_x_max);
      r_x_min = min(x, r_x_min);
    } else if (d == 'U') {
      up_y_min = min(up_y_min, y);
      up_y_max = max(up_y_max, y);
    } else if (d == 'D') {
      down_y_min = min(down_y_min, y);
      down_y_max = max(down_y_max, y);
    }
    if (d == 'L' || d == 'R') {
      h_y_max = max(h_y_max, y);
      h_y_min = min(h_y_min, y);
    } else {
      v_x_max = max(v_x_max, x);
      v_x_min = min(v_x_min, x);
    }
  }
  ans = (long long)(init_x_max - init_x_min) * (init_y_max - init_y_min);
  vector<double> candidate_time;
  // y_max
  if (up_y_max < h_y_max) {
    candidate_time.push_back(h_y_max - up_y_max);
  }
  if (down_y_max > max(h_y_max, up_y_max)) {
      candidate_time.push_back((down_y_max - up_y_max) / 2.);
      candidate_time.push_back(down_y_max - h_y_max);
  }
  // y_min
  if (down_y_min > h_y_min) {
    candidate_time.push_back(down_y_min - h_y_min);
  }
  if (up_y_min < min(down_y_min, h_y_min)) {
    candidate_time.push_back((down_y_min - up_y_min) / 2.);
    candidate_time.push_back(h_y_min - up_y_min);
  }
  // x_max
  if (r_x_max < v_x_max) {
    candidate_time.push_back(v_x_max - r_x_max);
  }
  if (l_x_max > max(v_x_max, r_x_max)) {
    candidate_time.push_back(l_x_max - v_x_max);
    candidate_time.push_back((l_x_max - r_x_max) / 2.);
  }
  // x_min
  if (l_x_min > v_x_min) {
    candidate_time.push_back(l_x_min - v_x_min);
  }
  if (r_x_min < min(l_x_min, v_x_min)) {
    candidate_time.push_back(v_x_min - r_x_min);
    candidate_time.push_back((l_x_min - r_x_min) / 2.);
  }
  auto calc =[&](double t) {
    double min_x = min({double(v_x_min), l_x_min - t, r_x_min + t});
    double min_y = min({double(h_y_min), up_y_min + t, down_y_min - t});
    double max_x = max({double(v_x_max), l_x_max - t, r_x_max + t});
    double max_y = max({double(h_y_max), up_y_max + t, down_y_max - t});
    ans = min(ans, (max_x - min_x) * (max_y - min_y));
  };
  for (auto t : candidate_time) {
    calc(t);
  }
  cout << fixed << setprecision(10) << ans << '\n';

  
}

Submission Info

Submission Time
Task F - Minimum Bounding Box
User zjsdut
Language C++14 (GCC 5.4.1)
Score 600
Code Size 3057 Byte
Status AC
Exec Time 25 ms
Memory 256 KiB

Judge Result

Set Name All Sample
Score / Max Score 600 / 600 0 / 0
Status
AC × 73
AC × 3
Set Name Test Cases
All sample_00, sample_01, sample_02, testcase_0_0, testcase_0_1, testcase_0_2, testcase_0_3, testcase_0_4, testcase_0_5, testcase_0_6, testcase_0_7, testcase_0_8, testcase_0_9, testcase_1_0, testcase_1_1, testcase_1_10, testcase_1_11, testcase_1_12, testcase_1_13, testcase_1_2, testcase_1_3, testcase_1_4, testcase_1_5, testcase_1_6, testcase_1_7, testcase_1_8, testcase_1_9, testcase_2_0, testcase_2_1, testcase_3_0, testcase_3_1, testcase_3_2, testcase_3_3, testcase_3_4, testcase_4_0, testcase_5_0, testcase_5_1, testcase_5_10, testcase_5_11, testcase_5_12, testcase_5_13, testcase_5_14, testcase_5_2, testcase_5_3, testcase_5_4, testcase_5_5, testcase_5_6, testcase_5_7, testcase_5_8, testcase_5_9, testcase_6_0, testcase_6_1, testcase_6_2, testcase_6_3, testcase_6_4, testcase_7_0, testcase_7_1, testcase_7_10, testcase_7_11, testcase_7_12, testcase_7_13, testcase_7_14, testcase_7_2, testcase_7_3, testcase_7_4, testcase_7_5, testcase_7_6, testcase_7_7, testcase_7_8, testcase_7_9, testcase_998244353, testcase_pair, testcase_powerful
Sample sample_00, sample_01, sample_02
Case Name Status Exec Time Memory
sample_00 AC 1 ms 256 KiB
sample_01 AC 1 ms 256 KiB
sample_02 AC 1 ms 256 KiB
testcase_0_0 AC 1 ms 256 KiB
testcase_0_1 AC 1 ms 256 KiB
testcase_0_2 AC 1 ms 256 KiB
testcase_0_3 AC 1 ms 256 KiB
testcase_0_4 AC 1 ms 256 KiB
testcase_0_5 AC 1 ms 256 KiB
testcase_0_6 AC 1 ms 256 KiB
testcase_0_7 AC 1 ms 256 KiB
testcase_0_8 AC 1 ms 256 KiB
testcase_0_9 AC 1 ms 256 KiB
testcase_1_0 AC 1 ms 256 KiB
testcase_1_1 AC 1 ms 256 KiB
testcase_1_10 AC 1 ms 256 KiB
testcase_1_11 AC 1 ms 256 KiB
testcase_1_12 AC 1 ms 256 KiB
testcase_1_13 AC 1 ms 256 KiB
testcase_1_2 AC 1 ms 256 KiB
testcase_1_3 AC 1 ms 256 KiB
testcase_1_4 AC 1 ms 256 KiB
testcase_1_5 AC 1 ms 256 KiB
testcase_1_6 AC 1 ms 256 KiB
testcase_1_7 AC 1 ms 256 KiB
testcase_1_8 AC 1 ms 256 KiB
testcase_1_9 AC 1 ms 256 KiB
testcase_2_0 AC 1 ms 256 KiB
testcase_2_1 AC 1 ms 256 KiB
testcase_3_0 AC 1 ms 256 KiB
testcase_3_1 AC 1 ms 256 KiB
testcase_3_2 AC 1 ms 256 KiB
testcase_3_3 AC 1 ms 256 KiB
testcase_3_4 AC 1 ms 256 KiB
testcase_4_0 AC 15 ms 256 KiB
testcase_5_0 AC 9 ms 256 KiB
testcase_5_1 AC 15 ms 256 KiB
testcase_5_10 AC 14 ms 256 KiB
testcase_5_11 AC 12 ms 256 KiB
testcase_5_12 AC 1 ms 256 KiB
testcase_5_13 AC 11 ms 256 KiB
testcase_5_14 AC 7 ms 256 KiB
testcase_5_2 AC 12 ms 256 KiB
testcase_5_3 AC 7 ms 256 KiB
testcase_5_4 AC 5 ms 256 KiB
testcase_5_5 AC 21 ms 256 KiB
testcase_5_6 AC 10 ms 256 KiB
testcase_5_7 AC 15 ms 256 KiB
testcase_5_8 AC 22 ms 256 KiB
testcase_5_9 AC 7 ms 256 KiB
testcase_6_0 AC 19 ms 256 KiB
testcase_6_1 AC 19 ms 256 KiB
testcase_6_2 AC 19 ms 256 KiB
testcase_6_3 AC 19 ms 256 KiB
testcase_6_4 AC 19 ms 256 KiB
testcase_7_0 AC 1 ms 256 KiB
testcase_7_1 AC 1 ms 256 KiB
testcase_7_10 AC 1 ms 256 KiB
testcase_7_11 AC 1 ms 256 KiB
testcase_7_12 AC 1 ms 256 KiB
testcase_7_13 AC 1 ms 256 KiB
testcase_7_14 AC 1 ms 256 KiB
testcase_7_2 AC 1 ms 256 KiB
testcase_7_3 AC 1 ms 256 KiB
testcase_7_4 AC 1 ms 256 KiB
testcase_7_5 AC 1 ms 256 KiB
testcase_7_6 AC 1 ms 256 KiB
testcase_7_7 AC 1 ms 256 KiB
testcase_7_8 AC 1 ms 256 KiB
testcase_7_9 AC 1 ms 256 KiB
testcase_998244353 AC 25 ms 256 KiB
testcase_pair AC 1 ms 256 KiB
testcase_powerful AC 1 ms 256 KiB