Submission #1330471

#TimeUsernameProblemLanguageResultExecution timeMemory
1330471SpyrosAlivCatfish Farm (IOI22_fish)C++20
12 / 100
53 ms14028 KiB
#include "fish.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long

bool deb = false;

int n, m;
vector<int> x, y;
vector<ll> w;

void dbg(vector<int> xx) {
  if (!deb) return;
  cout << "DBG: ";
  for (auto x: xx) cout << x << " ";
  cout << "\n";
}

ll max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) {
  n = N;
  m = M;
  x = X;
  y = Y;
  for (auto x: W) w.push_back(x);
  vector<ll> arr(n);
  for (int i = 0; i < m; i++) {
    arr[x[i]] += w[i];
  }
  vector<ll> dp(n, 0);
  ll ans = arr[0];
  for (int i = 1; i < n; i++) {
    dp[i] = dp[i-1];
    if (i >= 2) {
      dp[i] = max(dp[i], dp[i-2] + arr[i-1]);
    }
    if (i >= 3) {
      dp[i] = max(dp[i], dp[i-3] + arr[i-2] + arr[i-1]);
    }
    if (i == 1) {
      dp[i] = max(dp[i], arr[i-1]);
    }
    ans = max({ans, dp[i], dp[i-1] + arr[i]});
  }
  return ans;
}
#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...