답안 #853475

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
853475 2023-09-24T12:05:49 Z vjudge1 Uplifting Excursion (BOI22_vault) C++17
0 / 100
1 ms 604 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;
	}
	vector<int> 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;
	}
	int ans[5051];
	for(int i = 0; i <= max_sum; i++) ans[i] = -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();
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Runtime error 1 ms 604 KB Execution killed with signal 11
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Runtime error 1 ms 604 KB Execution killed with signal 11
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Runtime error 1 ms 604 KB Execution killed with signal 11
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Runtime error 1 ms 604 KB Execution killed with signal 11
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Runtime error 1 ms 604 KB Execution killed with signal 11
7 Halted 0 ms 0 KB -