Submission #4714056


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
using lint = long long;
template<class T = int> using V = vector<T>;
template<class T = int> using VV = V< V<T> >;

// BEGIN CUT HERE
struct DisjointSparseTable {
  using T = int;
  static T op(const T& x, const T& y) { return max(x, y); }

  const int n;
  VV<T> t;
  template<class Itr> DisjointSparseTable(Itr first, Itr last) :
    n(distance(first, last)), t(__lg(2 * n - 1), V<T>(first, last)) {
    for (int k = 1; k < (int) t.size(); ++k) {
      for (int i0 = 1 << k; i0 < n; i0 += 1 << k + 1) {
        for (int i = i0 + 1; i < min(i0 + (1 << k), n); ++i) {
          t[k][i] = op(t[k][i - 1], t[k][i]);
        }
        for (int i = i0 - 2; i >= i0 - (1 << k); --i) {
          t[k][i] = op(t[k][i], t[k][i + 1]);
        }
      }
    }
  }
  T acc(int l, int r) const {
    assert(l < r);
    if (l == --r) return t[0][l];
    int k = __lg(l ^ r);
    return op(t[k][l], t[k][r]);
  }
};
// END CUT HERE

int main() {
  cin.tie(nullptr); ios::sync_with_stdio(false);
  int n; cin >> n;
  V<> h(n); for (auto&& e : h) cin >> e;
  DisjointSparseTable st(begin(h), end(h));
  for (int i = 0; i < n; ++i) {
    int ok = i + 1, ng = n + 1;
    while (ng - ok > 1) {
      int m = ok + ng >> 1;
      (st.acc(i + 1, m) <= h[i] ? ok : ng) = m;
    }
    int res = ok - (i + 1);
    ng = -1, ok = i;
    while (ok - ng > 1) {
      int m = ng + ok >> 1;
      (st.acc(m, i) <= h[i] ? ok : ng) = m;
    }
    res += i - ok;
    cout << res << '\n';
  }
}

Submission Info

Submission Time
Task D - 登山家
User risujiroh
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1560 Byte
Status AC
Exec Time 55 ms
Memory 7928 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 3
AC × 22
AC × 42
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt
Subtask2 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt AC 2 ms 256 KB
subtask1_03.txt AC 2 ms 256 KB
subtask1_04.txt AC 2 ms 384 KB
subtask1_05.txt AC 1 ms 256 KB
subtask1_06.txt AC 2 ms 384 KB
subtask1_07.txt AC 1 ms 256 KB
subtask1_08.txt AC 2 ms 384 KB
subtask1_09.txt AC 2 ms 384 KB
subtask1_10.txt AC 2 ms 256 KB
subtask1_11.txt AC 2 ms 384 KB
subtask1_12.txt AC 2 ms 384 KB
subtask1_13.txt AC 2 ms 384 KB
subtask1_14.txt AC 1 ms 256 KB
subtask1_15.txt AC 2 ms 384 KB
subtask1_16.txt AC 2 ms 384 KB
subtask1_17.txt AC 2 ms 384 KB
subtask1_18.txt AC 2 ms 384 KB
subtask1_19.txt AC 2 ms 384 KB
subtask2_01.txt AC 31 ms 4624 KB
subtask2_02.txt AC 14 ms 2432 KB
subtask2_03.txt AC 29 ms 4504 KB
subtask2_04.txt AC 32 ms 4480 KB
subtask2_05.txt AC 52 ms 7928 KB
subtask2_06.txt AC 52 ms 7928 KB
subtask2_07.txt AC 52 ms 7928 KB
subtask2_08.txt AC 52 ms 7928 KB
subtask2_09.txt AC 52 ms 7928 KB
subtask2_10.txt AC 52 ms 7928 KB
subtask2_11.txt AC 54 ms 7680 KB
subtask2_12.txt AC 52 ms 7928 KB
subtask2_13.txt AC 52 ms 7928 KB
subtask2_14.txt AC 52 ms 7928 KB
subtask2_15.txt AC 54 ms 7680 KB
subtask2_16.txt AC 52 ms 7928 KB
subtask2_17.txt AC 52 ms 7928 KB
subtask2_18.txt AC 52 ms 7928 KB
subtask2_19.txt AC 55 ms 7680 KB
subtask2_20.txt AC 51 ms 7928 KB