結果
| 問題 | No.227 簡単ポーカー | 
| コンテスト | |
| ユーザー |  f843nmfwisfeuw | 
| 提出日時 | 2020-06-11 08:23:59 | 
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 2 ms / 5,000 ms | 
| コード長 | 1,607 bytes | 
| コンパイル時間 | 935 ms | 
| コンパイル使用メモリ | 102,944 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-06-24 02:48:53 | 
| 合計ジャッジ時間 | 1,571 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 14 | 
ソースコード
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <stack>
#include <algorithm>
#include <string>
#include <map>
#include <iterator>
#include <set>
#include <queue>
using namespace std;
string solve(vector<int> v) {
    map<int, int> m;
    for (int i = 0; i < v.size(); ++i) {
        m[v[i]] += 1;
    }
    if (m.size() == 2) {
        // FULL HOUSE
        bool onePair = false;
        bool threeCard = false;
        for (auto kv:m) {
            if (kv.second == 3) {
                threeCard = true;
            }
            if (kv.second == 2) {
                onePair = true;
            }
        }
        if (onePair and threeCard) {
            return "FULL HOUSE";
        }
        return "NO HAND";
    } else if (m.size() == 3) {
        // THREE CARD
        bool isThreeCard = false;
        for (auto kv:m) {
            if (kv.second == 3) {
                isThreeCard = true;
            }
        }
        if (isThreeCard) {
            return "THREE CARD";
        }
        // TWO PAIR
        int tmpCnt = 0;
        for (auto kv:m) {
            if (kv.second == 2) {
                tmpCnt += 1;
            }
        }
        if (tmpCnt == 2) {
            return "TWO PAIR";
        }
        return "NO HAND";
    } else if (m.size() == 4) {
        return "ONE PAIR";
    } else {
        return "NO HAND";
    }
}
int main() {
    vector<int> v;
    for (int i = 0; i < 5; ++i) {
        int A;
        cin >> A;
        v.push_back(A);
    }
    cout << solve(v) << endl;
    return 0;
}
            
            
            
        