Решение задачи Покер с Acmp

Без пояснения   Просмотров: 35


Имеется 5 целых чисел. Среди них:

• если одинаковы 5, то вывести "Impossible", иначе
• если одинаковы 4, то вывести "Four of a Kind", иначе
• если одинаковы 3 и 2, то вывести "Full House", иначе
• если есть 5 последовательных, то вывести "Straight", иначе
• если одинаковы 3, то вывести "Three of a Kind", иначе
• если одинаковы 2 и 2, то вывести "Two Pairs", иначе
• если одинаковы 2, то вывести "One Pair", иначе
• вывести "Nothing".

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    vector<int> a;
    int temp;
    vector <int> b(13);
    for(int i = 0; i < 5; ++i){
        cin >> temp;
        a.push_back(temp);
    }
 
    for(int i = 0; i < a.size(); ++i){
        b[a[i] - 1]++;
    }
    sort(b.begin(),b.end());
    sort(a.begin(),a.end());
    if(b[b.size() - 1] == 5)
        cout << "Impossible";
    else
        if(b[b.size() - 1] == 4)
            cout << "Four of a Kind";
    else
        if(b[b.size() - 1] == 3){
            for(int i = b.size() - 2; i >= 0; --i)
                if(b[i] == 2){
                    cout << "Full House";
                    return 0;
                }
                else{
                    cout << "Three of a Kind";
                    return 0;
                }
        }
    else
        if(b[b.size() - 1] == 2){
            for(int i = b.size() - 2; i >= 0; --i)
                if(b[i] == 2){
                    cout << "Two Pairs";
                    return 0;
                }
                else{
                    cout << "One Pair";
                    return 0;
                }
        }
    else{
        for(int i = 1; i < a.size(); ++i)
            if(a[i] - 1 != a[i - 1]){
                cout << "Nothing";
                return 0;
            }
        cout << "Straight";
    }
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться