Покер C++

После нескольких походов и выигранных битв, у орков накопилось некоторое количество трофеев, которые вождь Оргрим Думхаммер должен распределить между воинами. Но хочет он сделать это в соответствии с тем, как они проявили себя в сражениях. Вождь приказал каждому орку принести 5 голов убитых им воинов противников и выложить их перед собой в ряд. Все бойцы выполнили этот приказ и теперь Оргрим должен оценить доблесть каждого. Возможны следующие оценки:

• нулевка (no pair) – все принесенные головы принадлежат воинам различных рас, то есть нет ни одной пары голов одной расы;

• пара (pair) – есть пара принесенных голов, принадлежащих воинам одной расы;

• две пары (two pair) – есть две пары одинаковых голов;

• тройка (set) – есть три головы воинов одной расы;

• фул-хаус (full house) – три головы одной расы, и две другой;

• каре (quads) – четыре головы одной расы;

• покер (poker) – все пять голов принадлежат воинам одной расы.

Оценки перечислены в порядке возрастания значимости и если комбинация голов у орка подходит под определение нескольких оценок, выбирается наиболее значимая.

Помогите вождю написать программу, которая позволит ему оценить всех своих воинов по достоинству.

Входные данные

   В первой строке входного файла содержится целое число T (1 ≤ T ≤ 10000) – количество орков, принесших головы. В каждой из последующих T строк записаны через пробел 5 рас, которым принадлежат головы, выставленные соответствующим орком. Название каждой расы состоит не более чем из 7 маленьких латинских букв.

Выходные данные

   В выходной файл нужно вывести T строк, в каждой из которых будет оценка комбинации голов соответствующего орка.

 

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>

using namespace std;

vector <int> vect;
vector <string> vstr, answer;

int n;
string str;
bool push;

int main()
{
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        vect.clear(); vstr.clear();
        for (int j = 0; j < 5; j++)
        {
            push = false;
            cin >> str;
            for (int h = 0; h < vstr.size(); h++)
                if (vstr[h] == str) { push = true; vect[h]++; }
            if (!push) { vect.push_back(1); vstr.push_back(str); }
        }
        sort(vect.begin(), vect.end());
        if (vect[vect.size() - 1] == 5) answer.push_back("poker");
        else if (vect[vect.size() - 1] == 4) answer.push_back("quads");
        else if (vect[vect.size() - 1] == 3 && vect[vect.size() - 2] == 2) answer.push_back("full house");
        else if (vect[vect.size() - 1] == 3) answer.push_back("set");
        else if (vect[vect.size() - 1] == 2 && vect[vect.size() - 2] == 2)answer.push_back("two pair");
        else if (vect[vect.size() - 1] == 2)answer.push_back("pair");
        else answer.push_back("no pair");
    }
    for (int i = 0; i < n; i++) cout << answer[i] << endl;
}

Назад

Повышение продаж с помощью веб-форм Разложение числа на простые множители Как качественный контент способствует продвижению сайта Как выбрать хостинг Как писать SEO-тексты? Что такое SEO оптимизация сайта


Хостинг

Есть решение которого нет на сайте? Пиши admin@devexe.top