Submission #1201417

#TimeUsernameProblemLanguageResultExecution timeMemory
1201417Timosh메기 농장 (IOI22_fish)C++20
3 / 100
51 ms7240 KiB
#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]);
    }
    return mx;
  }

  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...