#include "fish.h"
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;
// sub 2
ll max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) {
vector<ll> a, b, pa, pb;
for (int i = 0; i < N; i++) {
if (X[i] == 0) a.pb(Y[i]);
else b.pb(Y[i]);
}
pa.resize(a.size()); pb.resize(b.size());
pa[0] = W[a[0]]; pb[0] = W[b[0]];
for (int i = 1; i < a.size(); i++) pa[i] = pa[i-1] + W[a[i]];
for (int i = 1; i < b.size(); i++) pb[i] = pb[i-1] + W[b[i]];
ll mx = max(pa[a.size()-1], pb[b.size()-1]);
for (int i = 0; i < a.size(); i++) {
if (b[b.size()-1] <= a[i]) continue;
int L = 0, R = b.size()-1;
while (L < R) {
int m = (L + R) / 2;
if (b[m] <= a[i]) L = m+1;
else R = m;
}
mx = max(mx, pa[i]+pb[N]-pa[L]);
}
return mx;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |