program scopa;
Uses math;
type carta = record
numero:integer;
seme:char
end;
var
line: ansistring;
c:integer;
i,j, h, t, tot, number, ricordaid, conta, ricordaconta, ricordatot: integer;
suit: char;
mano, table, ricorda: array[1..4] of carta;
settebinmano, settebintable, fattoscopa: boolean;
procedure readcard(var s: ansistring; var number: integer; var suit: char);
begin
if (s[1] = '1') and (s[2] = '0') then
begin
number := 10;
suit := s[3];
s := copy(s, 5, length(s));
end else begin
number := ord(s[1]) - ord('0');
if ord(s[2])<>32 then
begin
suit := s[2];
s := copy(s, 4, length(s));
end
else
begin
suit := s[2+1];
s := copy(s, 4+1, length(s));
end;
end;
end;
begin
{
uncomment the following lines if you want to read/write from files
assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);
}
settebinmano:=false; settebintable:=false; fattoscopa:=false;
readln(line);
for i:=1 to 3 do
begin
{ card in hand }
readcard(line, number, suit);
writeln (line);
mano[i].numero:=number;
mano[i].seme:=suit;
if (number=7) and (suit='G') then settebinmano:=true;
{ use number and suit }
end;
for i:=1 to 3 do begin ricorda[i].numero:=0; ricorda[i].seme:='0'; end;
readln(line);
tot:=0;
for i:=1 to 4 do
begin
{ card on table }
readcard(line, number, suit);
writeln(line);
table[i].numero:=number;
table[i].seme:=suit;
tot:=tot+number;
if (number=7) and (suit='G') then settebintable:=true;
{ use number and suit }
end;
for t:=1 to 3 do
begin
for i:=1 to 16 do
begin
tot:=0;
for j:=0 to 4 do
begin
if i And (1 Shl j) <>0 then tot:=tot + table[j].numero;
if tot=5 then write (mano[t].numero,mano[t].seme,' ',table[j].numero, table[j].seme);
writeln;
end;
end;
end;
end.
cHJvZ3JhbSBzY29wYTsKVXNlcyBtYXRoOwp0eXBlIGNhcnRhID0gcmVjb3JkCiAgICAgICAgICAgICAgICAgICBudW1lcm86aW50ZWdlcjsKICAgICAgICAgICAgICAgICAgIHNlbWU6Y2hhcgogICAgICAgICAgICAgICAgZW5kOyAgICAKdmFyCiAgICBsaW5lOiBhbnNpc3RyaW5nOwogICAgYzppbnRlZ2VyOwogICAgaSxqLCBoLCB0LCB0b3QsIG51bWJlciwgcmljb3JkYWlkLCBjb250YSwgcmljb3JkYWNvbnRhLCByaWNvcmRhdG90OiBpbnRlZ2VyOwogICAgc3VpdDogY2hhcjsKICAgIG1hbm8sIHRhYmxlLCByaWNvcmRhOiBhcnJheVsxLi40XSBvZiBjYXJ0YTsKICAgIHNldHRlYmlubWFubywgc2V0dGViaW50YWJsZSwgZmF0dG9zY29wYTogYm9vbGVhbjsKICAgIApwcm9jZWR1cmUgcmVhZGNhcmQodmFyIHM6IGFuc2lzdHJpbmc7IHZhciBudW1iZXI6IGludGVnZXI7IHZhciBzdWl0OiBjaGFyKTsKYmVnaW4KICAgIGlmIChzWzFdID0gJzEnKSBhbmQgKHNbMl0gPSAnMCcpIHRoZW4KICAgIGJlZ2luCiAgICAgICAgbnVtYmVyIDo9IDEwOwogICAgICAgIHN1aXQgOj0gc1szXTsKICAgICAgICBzIDo9IGNvcHkocywgNSwgbGVuZ3RoKHMpKTsKICAgIGVuZCBlbHNlIGJlZ2luCiAgICAgICAgbnVtYmVyIDo9IG9yZChzWzFdKSAtIG9yZCgnMCcpOwogICAgICAgIGlmIG9yZChzWzJdKTw+MzIgdGhlbiAKICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3VpdCA6PSBzWzJdOwogICAgICAgICAgICAgICAgICAgICAgICAgIHMgOj0gY29weShzLCA0LCBsZW5ndGgocykpOwogICAgICAgICAgICAgICAgICAgICAgICAgZW5kICAKICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VpdCA6PSBzWzIrMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzIDo9IGNvcHkocywgNCsxLCBsZW5ndGgocykpOwogICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDsgIAogICAgZW5kOwplbmQ7CgoKCmJlZ2luCnsKICAgIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmVzIGlmIHlvdSB3YW50IHRvIHJlYWQvd3JpdGUgZnJvbSBmaWxlcwogICAgYXNzaWduKGlucHV0LCAgJ2lucHV0LnR4dCcpOyAgcmVzZXQoaW5wdXQpOwogICAgYXNzaWduKG91dHB1dCwgJ291dHB1dC50eHQnKTsgcmV3cml0ZShvdXRwdXQpOwp9CiAgICBzZXR0ZWJpbm1hbm86PWZhbHNlOyBzZXR0ZWJpbnRhYmxlOj1mYWxzZTsgZmF0dG9zY29wYTo9ZmFsc2U7CiAgICAKICAgIHJlYWRsbihsaW5lKTsKICAgIGZvciBpOj0xIHRvIDMgZG8KICAgIGJlZ2luCiAgICAgICAgeyBjYXJkIGluIGhhbmQgfQogICAgICAgIHJlYWRjYXJkKGxpbmUsIG51bWJlciwgc3VpdCk7CiAgICAgICAgd3JpdGVsbiAobGluZSk7CiAgICAgICAgbWFub1tpXS5udW1lcm86PW51bWJlcjsKICAgICAgICBtYW5vW2ldLnNlbWU6PXN1aXQ7CiAgICAgICAgaWYgKG51bWJlcj03KSBhbmQgKHN1aXQ9J0cnKSB0aGVuIHNldHRlYmlubWFubzo9dHJ1ZTsKICAgICAgICB7IHVzZSBudW1iZXIgYW5kIHN1aXQgfQogICAgZW5kOwogICAgZm9yIGk6PTEgdG8gMyBkbyBiZWdpbiByaWNvcmRhW2ldLm51bWVybzo9MDsgcmljb3JkYVtpXS5zZW1lOj0nMCc7IGVuZDsKICAgIHJlYWRsbihsaW5lKTsKICAgIHRvdDo9MDsgCiAgICBmb3IgaTo9MSB0byA0IGRvCiAgICBiZWdpbgogICAgICAgIHsgY2FyZCBvbiB0YWJsZSB9CiAgICAgICAgcmVhZGNhcmQobGluZSwgbnVtYmVyLCBzdWl0KTsKICAgICAgICB3cml0ZWxuKGxpbmUpOwogICAgICAgIHRhYmxlW2ldLm51bWVybzo9bnVtYmVyOwogICAgICAgIHRhYmxlW2ldLnNlbWU6PXN1aXQ7CiAgICAgICAgdG90Oj10b3QrbnVtYmVyOwogICAgICAgIGlmIChudW1iZXI9NykgYW5kIChzdWl0PSdHJykgdGhlbiBzZXR0ZWJpbnRhYmxlOj10cnVlOwogICAgICAgIHsgdXNlIG51bWJlciBhbmQgc3VpdCB9CiAgICBlbmQ7CiAgICAKICAgIGZvciB0Oj0xIHRvIDMgZG8KICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgIGZvciBpOj0xIHRvIDE2IGRvCiAgICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICAgdG90Oj0wOyAKICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBqOj0wIHRvIDQgZG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpIEFuZCAoMSBTaGwgaikgPD4wIHRoZW4gIHRvdDo9dG90ICsgdGFibGVbal0ubnVtZXJvOwogICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdG90PTUgdGhlbiB3cml0ZSAobWFub1t0XS5udW1lcm8sbWFub1t0XS5zZW1lLCcgJyx0YWJsZVtqXS5udW1lcm8sIHRhYmxlW2pdLnNlbWUpOwogICAgICAgICAgICAgICAgICAgICAgIHdyaXRlbG47CiAgICAgICAgICAgICAgICAgICAgICAgZW5kOwogICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBlbmQ7IAogICAgICAgICAgZW5kOyAgCiAgZW5kLgo=