/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 320.0 KiB
#2 Wrong Answer 1ms 352.0 KiB
#3 Wrong Answer 1ms 372.0 KiB

Code

// @rakibul-islam

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

using ll = long long;
const ll oo = 1e17;
const ll mod = 1e9 + 7;

void solve() {
  int n;  cin >> n;
  vector<ll> a(n), b(n);
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  for (int i = 0; i < n; i++) {
    cin >> b[i];
  }
  vector<int> nxt(n, n);
  vector<int> stk;
  for (int i = n - 1; i >= 0; i--) {
    while (stk.size() && a[stk.back()] <= a[i]) stk.pop_back();
    if (stk.size()) nxt[i] = stk.back();
    stk.push_back(i);
  }
  vector<ll> dp(n, -1);
  auto f = [&](auto &&f, int i) -> ll {
    if (i == n) return 0;
    auto &ans = dp[i];
    if (~ans) return ans;
    ans = 0;
    ans = max(ans, f(f, nxt[i]) + b[i]);
    return ans;
  };
  ll res = f(f, 0);
  int len = 0;
  for (int i = n - 1; i >= 0; i--) {
    if (f(f, i) == res) {
      len = i;
      break;
    }
  }
  cout << (n - len) << "\n";
} 

int main() {
  cin.tie(0)->sync_with_stdio(0);
  int t = 1;  cin >> t;
  for (int test = 1; test <= t; test++) {
    solve();
  }
  return 0;
}

Information

Submit By
Type
Submission
Problem
P1224 Maximize the max
Contest
LUCC Presents Intra LU Junior Programming Contest - Replay
Language
C++17 (G++ 13.2.0)
Submit At
2025-09-02 17:09:36
Judged At
2025-09-02 17:09:36
Judged By
Score
1
Total Time
1ms
Peak Memory
372.0 KiB