제출 #792061

#제출 시각아이디문제언어결과실행 시간메모리
792061ToniBUplifting Excursion (BOI22_vault)C++17
0 / 100
320 ms401088 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 1000; const int K = MAXN * MAXN / 4; int m, L, a[MAXN]; int dp[MAXN][MAXN * MAXN / 2]; int main(){ cin >> m >> L; for(int i = 0; i < 2 * m + 1; ++i) cin >> a[i]; for(int i = 0; i < 2 * m + 1; ++i){ // dp[i][j] = max{dp[i - 1][j - x * (i - m)] + x} for(int j = 0; j < MAXN * MAXN / 2; ++j){ dp[i][j] = -1e9; for(int x = 0; x <= a[i]; ++x){ if(j - x * (i - m) >= 0 && j - x * (i - m) < MAXN * MAXN / 2){ if(i) dp[i][j] = max(dp[i][j], dp[i - 1][j - x * (i - m)] + x); else if(j - x * (i - m) == K) dp[i][j] = max(dp[i][j], x); } } } } if(L + K < 0 || L + K >= MAXN * MAXN / 2) cout << "impossible\n"; if(dp[2 * m][L + K] < 0) cout << "impossible\n"; else cout << dp[2 * m][L + K]; 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...