Решение задачи "Покер" с Меньшиков

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


Даны 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 <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
vector<int> A(5),B(14),C(6);
void input()
{
    for (int i=0;i<5;i++)
        cin>>A[i];
    sort(A.begin(),A.end());
}
void FindNumbersAmount(vector<int> initMas, vector<int> &resMas)
{
    for (int i=0;i<initMas.size();i++)
        resMas[initMas[i]]++;
}
bool isStraight()
{
    for (int i=1;i<A.size();i++)
        if (A[i]!=A[i-1]+1)
            return false;
    return true;
}
void solve()
{
    FindNumbersAmount(A,B);
    FindNumbersAmount(B,C);
    if (C[5])
        cout<<"Impossible";
    else if (C[4])
        cout<<"Four of a Kind";
    else if (C[3] && C[2])
        cout<<"Full House";
    else if (isStraight())
        cout<<"Straight";
    else if (C[3])
        cout<<"Three of a Kind";
    else if (C[2] == 2)
        cout<<"Two Pairs";
    else if (C[2])
        cout<<"One Pair";
    else
        cout<<"Nothing";
}
int main()
{
    input();
    solve();
 
    return 0;
}

         

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


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

Комментарии

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