#include <ctype.h>
int blackJackValue( char card1, char card2) {
// Convert both to uppercase in case user types lowercase
int value1 = 0 , value2 = 0 ;
// ---------- Determine value for card1 ----------
if ( card1 >= '2' && card1 <= '9' ) {
value1 = card1 - '0' ;
}
else if ( card1 == 'T' || card1 == 'J' || card1 == 'Q' || card1 == 'K' ) {
value1 = 10 ;
}
else if ( card1 == 'A' ) {
value1 = 11 ;
}
else {
return - 1 ; // invalid card
}
// ---------- Determine value for card2 ----------
if ( card2 >= '2' && card2 <= '9' ) {
value2 = card2 - '0' ;
}
else if ( card2 == 'T' || card2 == 'J' || card2 == 'Q' || card2 == 'K' ) {
value2 = 10 ;
}
else if ( card2 == 'A' ) {
value2 = 11 ;
}
else {
return - 1 ; // invalid card
}
// ---------- Special Ace handling ----------
if ( card1 == 'A' && card2 == 'A' ) {
// One ace stays 11, the other becomes 1
return 12 ;
}
// Otherwise normal sum
return value1 + value2;
}
I2luY2x1ZGUgPGN0eXBlLmg+CgppbnQgYmxhY2tKYWNrVmFsdWUoY2hhciBjYXJkMSwgY2hhciBjYXJkMikgewogICAgLy8gQ29udmVydCBib3RoIHRvIHVwcGVyY2FzZSBpbiBjYXNlIHVzZXIgdHlwZXMgbG93ZXJjYXNlCiAgICBjYXJkMSA9IHRvdXBwZXIoY2FyZDEpOwogICAgY2FyZDIgPSB0b3VwcGVyKGNhcmQyKTsKCiAgICBpbnQgdmFsdWUxID0gMCwgdmFsdWUyID0gMDsKCiAgICAvLyAtLS0tLS0tLS0tIERldGVybWluZSB2YWx1ZSBmb3IgY2FyZDEgLS0tLS0tLS0tLQogICAgaWYgKGNhcmQxID49ICcyJyAmJiBjYXJkMSA8PSAnOScpIHsKICAgICAgICB2YWx1ZTEgPSBjYXJkMSAtICcwJzsKICAgIH0KICAgIGVsc2UgaWYgKGNhcmQxID09ICdUJyB8fCBjYXJkMSA9PSAnSicgfHwgY2FyZDEgPT0gJ1EnIHx8IGNhcmQxID09ICdLJykgewogICAgICAgIHZhbHVlMSA9IDEwOwogICAgfQogICAgZWxzZSBpZiAoY2FyZDEgPT0gJ0EnKSB7CiAgICAgICAgdmFsdWUxID0gMTE7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gLTE7ICAgLy8gaW52YWxpZCBjYXJkCiAgICB9CgogICAgLy8gLS0tLS0tLS0tLSBEZXRlcm1pbmUgdmFsdWUgZm9yIGNhcmQyIC0tLS0tLS0tLS0KICAgIGlmIChjYXJkMiA+PSAnMicgJiYgY2FyZDIgPD0gJzknKSB7CiAgICAgICAgdmFsdWUyID0gY2FyZDIgLSAnMCc7CiAgICB9CiAgICBlbHNlIGlmIChjYXJkMiA9PSAnVCcgfHwgY2FyZDIgPT0gJ0onIHx8IGNhcmQyID09ICdRJyB8fCBjYXJkMiA9PSAnSycpIHsKICAgICAgICB2YWx1ZTIgPSAxMDsKICAgIH0KICAgIGVsc2UgaWYgKGNhcmQyID09ICdBJykgewogICAgICAgIHZhbHVlMiA9IDExOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgcmV0dXJuIC0xOyAgIC8vIGludmFsaWQgY2FyZAogICAgfQoKICAgIC8vIC0tLS0tLS0tLS0gU3BlY2lhbCBBY2UgaGFuZGxpbmcgLS0tLS0tLS0tLQogICAgaWYgKGNhcmQxID09ICdBJyAmJiBjYXJkMiA9PSAnQScpIHsKICAgICAgICAvLyBPbmUgYWNlIHN0YXlzIDExLCB0aGUgb3RoZXIgYmVjb21lcyAxCiAgICAgICAgcmV0dXJuIDEyOwogICAgfQoKICAgIC8vIE90aGVyd2lzZSBub3JtYWwgc3VtCiAgICByZXR1cm4gdmFsdWUxICsgdmFsdWUyOwp9Cg==