2798ブラックジャック👊
質問する
カジノで最も人気のあるゲームブラックジャックのルールはかなり簡単です.カードと21を超えない限度内で、カード和を最大限に拡大するゲームです.ブラックジャックはカジノごとに異なる規定を持っている.
韓国最高のブラックジャックの達人である金正仁(キム・ジョンイン)氏は、サングン、チャンヨン氏と新しいブラックジャックルールを制定し、ゲームを行う.
金正仁バージョンの黒いジャックには、カードごとに正の整数が書かれています.その後、ディーラーはすべてのN枚のカードを床に置いて、数字を表示します.そしてディーラーはデジタルMを叫んだ.
現在、プレイヤーは限られた時間内にN枚のカードの中から3枚のカードを選ばなければならない.ブラックジャック変形ゲームなので、プレイヤーが選択したカードの和はMを超えず、できるだけMに近づくようにします.
N枚のカードの数字が与えられている場合は、Mを超えずにMに最も近いカード3枚の合計を求めて出力してください.
入力
第1行は、カードの個数N(3≦N≦100)およびM(10≦M≦300000)を与える.2行目は、100000を超えない正の整数であるカードの数字を与えます.
3枚とMを超えないカードが見つかった場合のみ、入力として使用できます.
しゅつりょく
1行目は、Mに最も近い3枚のカードの合計を超えないように出力されます.
入力例1
5 21
5 6 7 8 9
サンプル出力1
21
コード#コード#
✔配列の値を3つの組み合わせで合計すると、合計値はその中で最大の値であり、接線の値以下になります.
#include <iostream>
#define CARD_MAX 100
using namespace std;
int main() {
int card_count = 0, cut_line = 0, max = 0, sum = 0;
int card[CARD_MAX] = { 0, };
cin >> card_count >> cut_line;
for (int i = 0; i < card_count; i++) {
cin >> card[i];
}
for (int i = 0; i < card_count; i++) {
for (int j = i + 1; j < card_count; j++) {
for (int k = j + 1; k < card_count; k++) {
sum = card[i] + card[j] + card[k];
if (sum > max && sum <= cut_line)
max = sum;
}
}
}
cout << max << endl;
return 0;
}
Reference
この問題について(2798ブラックジャック👊), 我々は、より多くの情報をここで見つけました https://velog.io/@veloger_97/2798-블랙잭テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol