Submission #3725021


Source Code Expand

#include <bits/stdc++.h>
#define int long long
#define uint unsigned int
#define rep(i, a, n) for (int i = a; i < n; i++)
#define all(a) (a).begin(), (a).end()
#define sz(a) (a).size()
#define pb push_back
#define eb emplace_back
#define mp make_pair
#define mt make_tuple
#define dump(x) cerr << #x << " = " << (x) << endl;
#define dumpi(i, x) cerr << string((i), ' ') << #x << " = " << (x) << endl;
#define debug(x) cerr << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << endl;
using namespace std;
using pii = pair<int, int>;
constexpr int MOD = 1000000007;
constexpr int INF = 1LL << 30;
constexpr double EPS = 1e-10;

struct BIT {
  int n;
  vector<int> bit;
  BIT() {}
  BIT(int n, int e = 0) {
    build(n, e);
  }
  void build(int n_, int e) {
    n = n_ + 1;
    bit.resize(n, e);
  }
  void add(int k, int x) {
    while (k <= n) {
      bit[k] += x;
      k += k & -k;
    }
  }
  int sum(int k) {
    int r = 0;
    while (k > 0) {
      r += bit[k];
      k -= k & -k;
    }
    return r;
  }
  int &operator[](int i) {
    return bit[i];
  }
};

int N;
int B[100010], RB[100010];
BIT bitL, bitR;
int L[100010], R[100010];
int pos = -1;

signed main() {
  cin.tie(0);
  ios_base::sync_with_stdio(false);
  cout << fixed << setprecision(10);
  
  cin >> N;
  rep(i, 0, N) {
    cin >> B[i];
    if (B[i] == N) pos = i;
    RB[i] = B[i];
  }
  reverse(RB, RB+N);
  bitL.build(N, 0);
  bitR.build(N, 0);

  rep(i, 0, N) {
    if (i != pos) {
      L[i] = (i - (i > pos)) - bitL.sum(B[i]);
      bitL.add(B[i], 1);
    }
    if (i != N-pos-1) {
      R[i] = (i - (i > N-pos-1)) - bitR.sum(RB[i]);
      bitR.add(RB[i], 1);
    }
    if (i > 0) {
      L[i] += L[i-1];
      R[i] += R[i-1];
    }
  }
  reverse(R, R+N);
  rep(i, 0, N) {
    cerr << R[i] << " \n"[i+1==N];
  }
  int ans = INF;
  rep(i, 0, N) {
    int sum = abs(pos - i);
    if (pos < i) {
      sum += L[i];
      if (i+1 < N) sum += R[i+1];
    } else if (i < pos) {
      sum += R[i];
      if (i > 0) sum += L[i-1];
    } else {
      if (i+1 < N) sum += R[i+1];
      if (i > 0) sum += L[i-1];
    }
    ans = min(ans, sum);
  }
  cout << ans << endl;

  return 0;
}

Submission Info

Submission Time
Task C - 積み木
User legosuke
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2273 Byte
Status WA
Exec Time 95 ms
Memory 4992 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 0 / 30 0 / 70
Status
AC × 3
AC × 13
WA × 20
AC × 13
WA × 55
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
Subtask1 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 10_small_00.txt, 10_small_01.txt, 10_small_02.txt, 10_small_03.txt, 10_small_04.txt, 10_small_05.txt, 10_small_06.txt, 10_small_07.txt, 10_small_08.txt, 10_small_09.txt, 10_small_10.txt, 10_small_11.txt, 10_small_12.txt, 10_small_13.txt, 10_small_14.txt, 10_small_15.txt, 10_small_16.txt, 10_small_17.txt, 10_small_18.txt, 10_small_19.txt, 10_small_20.txt, 10_small_21.txt, 10_small_22.txt, 10_small_23.txt, 10_small_24.txt, 10_small_25.txt, 10_small_26.txt, 10_small_27.txt, 10_small_28.txt, 10_small_29.txt
Subtask2 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 10_small_00.txt, 10_small_01.txt, 10_small_02.txt, 10_small_03.txt, 10_small_04.txt, 10_small_05.txt, 10_small_06.txt, 10_small_07.txt, 10_small_08.txt, 10_small_09.txt, 10_small_10.txt, 10_small_11.txt, 10_small_12.txt, 10_small_13.txt, 10_small_14.txt, 10_small_15.txt, 10_small_16.txt, 10_small_17.txt, 10_small_18.txt, 10_small_19.txt, 10_small_20.txt, 10_small_21.txt, 10_small_22.txt, 10_small_23.txt, 10_small_24.txt, 10_small_25.txt, 10_small_26.txt, 10_small_27.txt, 10_small_28.txt, 10_small_29.txt, 20_rand_00.txt, 20_rand_01.txt, 20_rand_02.txt, 20_rand_03.txt, 20_rand_04.txt, 20_rand_05.txt, 20_rand_06.txt, 20_rand_07.txt, 20_rand_08.txt, 20_rand_09.txt, 20_rand_10.txt, 20_rand_11.txt, 20_rand_12.txt, 20_rand_13.txt, 20_rand_14.txt, 20_rand_15.txt, 20_rand_16.txt, 20_rand_17.txt, 20_rand_18.txt, 20_rand_19.txt, 20_rand_20.txt, 20_rand_21.txt, 20_rand_22.txt, 20_rand_23.txt, 20_rand_24.txt, 20_rand_25.txt, 20_rand_26.txt, 20_rand_27.txt, 20_rand_28.txt, 20_rand_29.txt, 30_max_0.txt, 30_max_1.txt, 30_max_2.txt, 30_max_3.txt, 30_max_4.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 256 KB
00_sample_01.txt AC 1 ms 256 KB
00_sample_02.txt AC 1 ms 256 KB
10_small_00.txt WA 1 ms 256 KB
10_small_01.txt AC 1 ms 256 KB
10_small_02.txt WA 1 ms 256 KB
10_small_03.txt WA 1 ms 256 KB
10_small_04.txt WA 1 ms 256 KB
10_small_05.txt WA 1 ms 256 KB
10_small_06.txt AC 1 ms 256 KB
10_small_07.txt WA 1 ms 256 KB
10_small_08.txt WA 1 ms 256 KB
10_small_09.txt WA 1 ms 256 KB
10_small_10.txt AC 1 ms 256 KB
10_small_11.txt WA 1 ms 256 KB
10_small_12.txt AC 1 ms 256 KB
10_small_13.txt WA 1 ms 256 KB
10_small_14.txt WA 1 ms 256 KB
10_small_15.txt AC 1 ms 256 KB
10_small_16.txt AC 1 ms 256 KB
10_small_17.txt AC 1 ms 256 KB
10_small_18.txt WA 1 ms 256 KB
10_small_19.txt AC 1 ms 256 KB
10_small_20.txt WA 1 ms 256 KB
10_small_21.txt AC 1 ms 256 KB
10_small_22.txt AC 1 ms 256 KB
10_small_23.txt WA 1 ms 256 KB
10_small_24.txt WA 1 ms 256 KB
10_small_25.txt WA 1 ms 256 KB
10_small_26.txt WA 1 ms 256 KB
10_small_27.txt WA 1 ms 256 KB
10_small_28.txt WA 1 ms 256 KB
10_small_29.txt WA 1 ms 256 KB
20_rand_00.txt WA 62 ms 3200 KB
20_rand_01.txt WA 8 ms 640 KB
20_rand_02.txt WA 18 ms 1152 KB
20_rand_03.txt WA 29 ms 1664 KB
20_rand_04.txt WA 63 ms 3328 KB
20_rand_05.txt WA 84 ms 4480 KB
20_rand_06.txt WA 91 ms 4736 KB
20_rand_07.txt WA 65 ms 3456 KB
20_rand_08.txt WA 18 ms 1152 KB
20_rand_09.txt WA 13 ms 896 KB
20_rand_10.txt WA 58 ms 3200 KB
20_rand_11.txt WA 29 ms 1664 KB
20_rand_12.txt WA 28 ms 1664 KB
20_rand_13.txt WA 37 ms 2048 KB
20_rand_14.txt WA 25 ms 1408 KB
20_rand_15.txt WA 6 ms 512 KB
20_rand_16.txt WA 40 ms 2304 KB
20_rand_17.txt WA 4 ms 384 KB
20_rand_18.txt WA 95 ms 4864 KB
20_rand_19.txt WA 18 ms 1152 KB
20_rand_20.txt WA 13 ms 896 KB
20_rand_21.txt WA 60 ms 3200 KB
20_rand_22.txt WA 63 ms 3328 KB
20_rand_23.txt WA 89 ms 4736 KB
20_rand_24.txt WA 41 ms 2304 KB
20_rand_25.txt WA 46 ms 2560 KB
20_rand_26.txt WA 32 ms 1792 KB
20_rand_27.txt WA 34 ms 1920 KB
20_rand_28.txt WA 74 ms 3968 KB
20_rand_29.txt WA 13 ms 896 KB
30_max_0.txt WA 93 ms 4992 KB
30_max_1.txt WA 92 ms 4992 KB
30_max_2.txt WA 92 ms 4992 KB
30_max_3.txt WA 93 ms 4992 KB
30_max_4.txt WA 92 ms 4992 KB