#include <algorithm>
#include <array>
#include <cassert>
#include <map>
#include <numeric>
#include <vector>
#include "fish.h"
long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) {
std::map<int, long long> sums;
long long ans = 0;
for (int i = 0; i < M; ++i) sums[X[i]] += W[i], ans = std::max(ans, sums[X[i]]);
if (N == 2) {
return ans;
}
std::vector<std::vector<long long>> ws(2, std::vector<long long>(N));
long long cursum = 0;
for (int i = 0; i < M; ++i) ws[X[i]][Y[i]] = W[i], cursum += X[i] * W[i];
long long max = cursum;
for (int y = 0; y < N; ++y) {
cursum += ws[0][y] - ws[1][y];
max = std::max(max, cursum);
}
return max;
}
# | 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... |