답안 #853471

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
853471 2023-09-24T12:01:05 Z vjudge1 Uplifting Excursion (BOI22_vault) C++17
0 / 100
1 ms 348 KB
#include <bits/stdc++.h>

using namespace std;

#define endl "\n"

void solve(){
	long long M, L; cin >> M >> L;
	vector<int> val(2 * M + 1);
	for(int i = -M; i <= M; i++){
		val[i + M] = i;
	}
	for(int x : val) cout << x << " "; cout << endl;
	vector<long long> A(2 * M + 1);
	for(auto &i : A) cin >> i;
	if(L < 0){
		L *= -1;
		for(int i = 0; i < M; i++){
			swap(A[i], A[2 * M - i]);
		}
	}
	long long max_sum = 0;
	for(int i = M; i <= 2 * M; i++){
		max_sum += val[i] * A[i];
	}
	if(max_sum < L){
		cout << "impossible" << endl;
		return;
	}
	vector<int> ans(max_sum + 1, -1);
	ans[0] = 0;
	for(int i = M + 1; i <= 2 * M; i++){
		for(int _ = 0; _ < A[i]; _++){
			for(int w = max_sum; w >= 0; w--){
				if(ans[w] != -1) ans[w + val[i]] = max(ans[w + val[i]], ans[w] + 1);
			}
		}
	}
	for(int i = 0; i < M; i++){
		for(int _ = 0; _ < A[i]; _++){
			for(int w = -val[i]; w <= max_sum; w++){
				if(ans[w] != -1) ans[w + val[i]] = max(ans[w + val[i]], ans[w] + 1);
			}
		}
	}
	if(ans[L] == -1) cout << "impossible" << endl;
	else cout << ans[L] + A[M] << endl;
}

int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	solve();
}

Compilation message

vault.cpp: In function 'void solve()':
vault.cpp:13:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   13 |  for(int x : val) cout << x << " "; cout << endl;
      |  ^~~
vault.cpp:13:37: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   13 |  for(int x : val) cout << x << " "; cout << endl;
      |                                     ^~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -