Solução Cartas

Solução de Roger Benet, comentário por João Guilherme.

A solução é simples, basta passarmos pela entrada salvando num set as cartas que vimos e guardando o número de cartas de cada naipe num map. Se em algum momento formos inserir alguém no set já foi inserido, devemos imprimir GRESKA, caso constrário devemos imprimir 13 menos o valor do map de cada naipe.

Segue código para melhor entendimento.


#include <bits/stdc++.h>
using namespace std;
set <string> s;
map <char,int> mp;
string str,aux;
char bf[4];
bool ck;
int main(){
cin >> str;
int len = str.size();
for(int i = 0; i < len; i+=3){
bf[0] = str[i];
bf[1] = str[i+1];
bf[2] = str[i+2];
aux = bf;
mp[bf[0]]++;
if(s.find(aux) != s.end()){
ck = true;
break;
}
s.insert(aux);
}
if(ck)printf("GRESKA\n");
else printf("%d %d %d %d\n",13-mp['P'],13-mp['K'],13-mp['H'],13-mp['T']);
return 0;
}

view raw

karte_noic.cpp

hosted with ❤ by GitHub