-
[18429] 근손실BOJ 2021. 11. 27. 11:49
https://www.acmicpc.net/problem/18429
18429번: 근손실
웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로
www.acmicpc.net
<문제>
단순한 백트래킹, n!개의 운동키트 사용 순서에 대해서, 1~n일차에 전부 중량이 500이상인지를 확인해주면 된다.
<소스코드>
1234567891011121314151617#include <bits/stdc++.h>using namespace std;int n, k, a[51];int f(int depth, int cur, int bt) {if (depth == n) return (cur >= 500);int i, ret = 0;for (i = 0; i < n; i++)if (!(bt & (1 << i)) && cur + a[i] - k >= 500)ret += f(depth + 1, cur + a[i] - k, bt | (1 << i));return ret;}int main(void) {cin >> n >> k;for (int i = 0; i < n; i++) cin >> a[i];cout << f(0, 500, 0);return 0;}cs 'BOJ' 카테고리의 다른 글
[1735] 분수 합 (0) 2021.11.27 [1015] 수열 정렬 (0) 2021.11.27 [14852] 타일 채우기 3 (0) 2021.11.19 [14889] 스타트와 링크 (0) 2021.11.18 [14465] 소가 길을 건너간 이유 5 (0) 2021.11.18