Compile Error
foo.cc: In function 'void solve()': foo.cc:28:32: error: invalid initialization of reference of type 'std::vector<int>&' from expression of type 'std::vector<long int>' 28 | auto r = closest_max_element(a); | ^ foo.cc:4:46: note: in passing argument 1 of 'std::vector<int> closest_max_element(std::vector<int>&)' 4 | vector<int> closest_max_element(vector<int> &a) { | ~~~~~~~~~~~~~^
Code
#include <bits/stdc++.h>
using namespace std;
vector<int> closest_max_element(vector<int> &a) {
int n = a.size();
vector<int> r(n);
stack<int> st;
st.push(n);
for (int i = n - 1; i >= 0; i--) {
while (st.top() != n && a[st.top()] <= a[i]) st.pop();
r[i] = st.top();
st.push(i);
}
return r;
}
void solve() {
int n;
cin >> n;
vector<int64_t> a(n);
for (auto& ai : a) {
cin >> ai;
}
vector<int64_t> b(n);
for (auto& bi : b) {
cin >> bi;
}
auto r = closest_max_element(a);
vector<int64_t> suff(n + 9);
int64_t mx = 0;
for (int i = n - 1; i >= 0; i--) {
suff[i] = suff[r[i]] + b[i];
mx = max(mx, suff[i]);
}
int i = n - 1;
while (i >= 0 && suff[i] != mx) i--;
cout << n - i << '\n';
}
int main() {
ios_base::sync_with_stdio(0), cin.tie(0);
int t = 1;
cin >> t;
for (int i = 1; i <= t; i++) {
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 15:56:09
- Judged At
- 2025-09-02 15:56:09
- Judged By
- Score
- 0
- Total Time
- 0ms
- Peak Memory
- 0 Bytes