#include "fish.h"
#include <bits/stdc++.h>
using namespace std;
long long max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W)
{
bool ok = 1;
for (auto &i : X)
ok &= (i % 2 == 0);
if (ok)
return accumulate(W.begin(), W.end(), 0ll);
if (*max_element(X.begin(), X.end()) <= 1)
{
vector<int> A(N), B(N);
for (int i = 0; i < N; i++)
{
if (X[i])
B[Y[i]] = W[i];
else
A[Y[i]] = W[i];
}
vector<long long> pref(N + 1);
for (int i = 0; i < N; i++)
pref[i + 1] = pref[i] + A[i];
long long mx = pref[N], s = 0;
for (int i = N - 1; i >= 0; i--)
{
s += B[i];
mx = max(mx, s + pref[i]);
}
s = 0;
for (int i = 0; i < N; i++)
{
s += B[i];
mx = max(mx, s + pref[N] - pref[i + 1]);
}
return mx;
}
return 0;
}
# | 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... |