Submission #39075029
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
const int mod = 998244353;
const int N = 1e5 + 10;
#define endl '\n'
struct seg
{
#define ls (u << 1)
#define rs (ls | 1)
#define mid ((l + r) >> 1)
#define lson ls,l,mid
#define rson rs,mid+1,r
struct info
{
i64 mx;
info(){mx = 0;}
info operator+(const info &a) const
{
info b;
b.mx = max(mx, a.mx);
return b;
}
};
vector<info> tr;
seg(int n) : tr((n << 2) + 10){};
void pushup(int u) { tr[u] = tr[ls] + tr[rs]; }
void modify(int u,int l,int r,int L,int R, i64 x){
if(l>R||r<L)return;
if(l>=L&&r<=R){
tr[u].mx = x;
return;
}
modify(lson,L,R,x),modify(rson,L,R,x);
pushup(u);
}
i64 query(int u,int l,int r,int L,int R){
if(l>R||r<L)return 0;
if(l>=L&&r<=R)return tr[u].mx;
return max(query(lson,L,R),query(rson,L,R));
}
};
void solve()
{
int n;
cin >> n;
vector<i64> h(n + 1), a(n + 1);
for(int i = 1; i <= n; i++){
cin >> h[i];
}
for(int i = 1; i <= n; i++){
cin >> a[i];
}
seg t(n);
i64 mx = 0;
for(int i = 1; i <= n; i++){
i64 sum = t.query(1, 1, n, 1, h[i]) + a[i];
mx = max(mx, sum);
t.modify(1, 1, n, h[i], h[i], sum);
}
cout << mx << endl;
}
int main()
{
#ifdef ONLINE_JUDGE
ios::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
#endif
int _ = 1;
//cin >> _;
while (_--)
solve();
}
Submission Info
| Submission Time |
|
| Task |
Q - Flowers |
| User |
Jadebo1 |
| Language |
C++ (GCC 9.2.1) |
| Score |
100 |
| Code Size |
1669 Byte |
| Status |
AC |
| Exec Time |
108 ms |
| Memory |
12672 KiB |
Judge Result
| Set Name |
All |
| Score / Max Score |
100 / 100 |
| Status |
|
| Set Name |
Test Cases |
| All |
0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17 |
| Case Name |
Status |
Exec Time |
Memory |
| 0_00 |
AC |
10 ms |
3620 KiB |
| 0_01 |
AC |
4 ms |
3492 KiB |
| 0_02 |
AC |
2 ms |
3560 KiB |
| 0_03 |
AC |
4 ms |
3492 KiB |
| 1_00 |
AC |
3 ms |
3636 KiB |
| 1_01 |
AC |
78 ms |
12588 KiB |
| 1_02 |
AC |
77 ms |
12528 KiB |
| 1_03 |
AC |
76 ms |
12656 KiB |
| 1_04 |
AC |
76 ms |
12584 KiB |
| 1_05 |
AC |
81 ms |
12668 KiB |
| 1_06 |
AC |
78 ms |
12604 KiB |
| 1_07 |
AC |
79 ms |
12660 KiB |
| 1_08 |
AC |
77 ms |
12592 KiB |
| 1_09 |
AC |
85 ms |
12524 KiB |
| 1_10 |
AC |
108 ms |
12532 KiB |
| 1_11 |
AC |
104 ms |
12596 KiB |
| 1_12 |
AC |
105 ms |
12660 KiB |
| 1_13 |
AC |
103 ms |
12616 KiB |
| 1_14 |
AC |
105 ms |
12672 KiB |
| 1_15 |
AC |
103 ms |
12596 KiB |
| 1_16 |
AC |
105 ms |
12668 KiB |
| 1_17 |
AC |
102 ms |
12660 KiB |