제출 #1355628

#제출 시각아이디문제언어결과실행 시간메모리
1355628ramzialoulouUplifting Excursion (BOI22_vault)C++20
0 / 100
231 ms589824 KiB
#include <bits/stdc++.h>

using namespace std;

const int N = int(6e5) + 9;
const int M = 109;
int dp[2 * M][2 * N];

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int m;
  cin >> m;
  long long L;
  cin >> L;
  vector<int> a(2 * m + 1);
  for (int i = -m; i <= m; i++) {
    cin >> a[i + m];
  }
  for (int i = 0; i < 2 * M; i++) {
    for (int j = 0; j < 2 * N; j++) {
      dp[i][j] = -1;
    }
  }
  dp[0][N] = 0;
  for (int i = -m; i <= m; i++) {
    for (int x = -N; x <= N; x++) {
      if (dp[i + m][x + N] == -1) continue;
      for (int j = 0; j <= a[i + m]; j++) {
        int k = x + i * j;
        if (-N <= k && k <= N) {
          k += N;
          dp[i + 1 + m][k] = max(dp[i + 1 + m][k], dp[i + m][x + N] + j);
        }
      }
    }
  }
  L += N;
  if (0 <= L && L <= 2 * N) {
    if (dp[2 * m + 1][L] == -1) {
      cout << "impossible" << '\n';
    } else {
      cout << dp[2 * m + 1][L] << '\n';
    }
  } else {
    cout << "impossible" << '\n';
  }
  return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

vault.cpp: In function 'int main()':
vault.cpp:28:26: warning: iteration 1200018 invokes undefined behavior [-Waggressive-loop-optimizations]
   28 |       if (dp[i + m][x + N] == -1) continue;
      |           ~~~~~~~~~~~~~~~^
vault.cpp:27:24: note: within this loop
   27 |     for (int x = -N; x <= N; x++) {
      |                      ~~^~~~
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…