ブラックジャック
12570 ワード
リンクテキスト
カジノで最も人気のあるゲームブラックジャックのルールはかなり簡単です.カードと21を超えない限度内で、カード和を最大限に拡大するゲームです.ブラックジャックはカジノごとに異なる規定を持っている.
韓国最高のブラックジャックの達人である金正仁(キム・ジョンイン)氏は、サングン、チャンヨン氏と新しいブラックジャックルールを制定し、ゲームを行う.
金正仁バージョンの黒いジャックには、カードごとに正の整数が書かれています.その後、ディーラーはすべてのN枚のカードを床に置いて、数字を表示します.そしてディーラーはデジタルMを叫んだ.
現在、プレイヤーは限られた時間内にN枚のカードの中から3枚のカードを選ばなければならない.ブラックジャック変形ゲームなので、プレイヤーが選択したカードの和はMを超えず、できるだけMに近づくようにします.
N枚のカードの数字が与えられている場合は、Mを超えずにMに最も近いカード3枚の合計を求めて出力してください.
与えられた数字を組み合わせて、3つの長さ和を求め、Mと一致したり近づけたりすればよい.
もんだいぶんせき
カジノで最も人気のあるゲームブラックジャックのルールはかなり簡単です.カードと21を超えない限度内で、カード和を最大限に拡大するゲームです.ブラックジャックはカジノごとに異なる規定を持っている.
韓国最高のブラックジャックの達人である金正仁(キム・ジョンイン)氏は、サングン、チャンヨン氏と新しいブラックジャックルールを制定し、ゲームを行う.
金正仁バージョンの黒いジャックには、カードごとに正の整数が書かれています.その後、ディーラーはすべてのN枚のカードを床に置いて、数字を表示します.そしてディーラーはデジタルMを叫んだ.
現在、プレイヤーは限られた時間内にN枚のカードの中から3枚のカードを選ばなければならない.ブラックジャック変形ゲームなので、プレイヤーが選択したカードの和はMを超えず、できるだけMに近づくようにします.
N枚のカードの数字が与えられている場合は、Mを超えずにMに最も近いカード3枚の合計を求めて出力してください.
私の理解
与えられた数字を組み合わせて、3つの長さ和を求め、Mと一致したり近づけたりすればよい.
import sys
from itertools import permutations
n,m = map(int, sys.stdin.readline().split())
read2 = list(map(str, sys.stdin.readline().split()))
a = list(permutations(read2,3))
maxima =0
for ele in a:
summa = int(ele[0])+int(ele[1]) + int(ele[2])
if summa <= m:
if summa> maxima:
maxima = summa
print(maxima)
Pythonでは、配列を使って簡単に解くことができます.自分で組み合わせを作って、組み合わせの組み合わせを求めてmaximaに保存して解くことができます.C++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios_base :: sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int a,b;
cin >> a>>b;
vector <int> card;
vector <int> comb;
for(int i=0;i<3;i++){
comb.push_back(0);
}
for(int i=0;i<a-3;i++){
comb.push_back(1);
}
for(int i =0;i<a;i++){
int d;
cin >>d;
card.push_back(d);
}
sort(card.begin(),card.end());
int sum =0;
int max = -1;
do{
for (int i = 0; i < comb.size(); i++) {
if(comb[i]==0){
sum+= card[i];
}
}
if (sum <= b){
if (sum>max){
max = sum;
}
}
sum =0;
}while(next_permutation(comb.begin(),comb.end()));
cout<< max;
return 0;
}
C++はnext置換も使用できます.ただ3つの数字の組み合わせを探すので、combという配列で調整します.0は値切る、1はスキップする.Reference
この問題について(ブラックジャック), 我々は、より多くの情報をここで見つけました https://velog.io/@happyfran67/블랙잭백준テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol