Submission #1366800

#TimeUsernameProblemLanguageResultExecution timeMemory
1366800mannshah1211Catfish Farm (IOI22_fish)C++20
0 / 100
35 ms19788 KiB
#include "fish.h"
#include <bits/stdc++.h>
#include <vector>

using namespace std;

const long long inf = (long long) 1e18;

long long max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w) {
  vector<int> a(n + 1);
  for (int i = 0; i < m; i++) {
    a[x[i] + 1] = w[i];
  }
  vector<vector<vector<long long>>> dp(n + 1, vector<vector<long long>>(2, vector<long long>(2, -inf)));
  dp[2][1][0] = a[2], dp[2][0][1] = a[1], dp[2][0][0] = 0;
  for (int i = 3; i <= n; i++) {
    for (int j = 0; j < 2; j++) {
      for (int k = 0; k < 2; k++) {
        for (int l = 0; l < 2; l++) {
          if (!(j && k && l)) {
            dp[i][j][k] = max(dp[i][j][k], dp[i - 1][k][l] + a[i] * j);
          }
        }
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < 2; j++) {
      for (int k = 0; k < 2; k++) {
        cout << dp[i][j][k] << " ";
      }
      cout << '\n';
    }
    cout << '\n';
  }
  return max({dp[n][0][0], dp[n][0][1], dp[n][1][0]});
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...