program scopa;
type carta = record
numero:longint;
seme:char
end;
coppie = record
somma:longint;
indice1:longint;
indice2:longint;
end;
var
line: ansistring;
i,j, h,w,z, tot, som, number, ricordaidscopa,ricordaid2, ricordaidcoppiasette,idmanosette, idtablesette, ricordaidternasette: longint;
suit: char;
mano, table: array[1..4] of carta;
prendodue : array[1..6] of coppie;
settebinmano, settebintable, setteinmano,setteintable,coppiasette, fattoscopa,ternasette, trovatosette,trovatosette1, trovatosette2: boolean;
terna:array [1..4] of longint;
procedure readcard(var s: ansistring; var number: longint; 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; ternasette:=false;setteinmano:=false; coppiasette:=false; setteintable:=false;fattoscopa:=false; trovatosette1:=false; trovatosette2:=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;
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 i:=1 to 3 do if mano[i].numero=tot then begin fattoscopa:=true; ricordaidscopa:=i; end;
h:=1; for i:=1 to 4 do begin terna[h]:=tot-table[i].numero; h:=h+1; end;
for i:=1 to 4 do if terna[i]=7 then begin ternasette:=true; ricordaidternasette:=i; end;
for i:=1 to 3 do if mano[i].numero=7 then begin setteinmano:=true; idmanosette:=i; end;
for i:=1 to 4 do if table[i].numero=7 then begin setteintable:=true; idtablesette:=i; end;
h:=0;
for i:= 1 to 3 do
begin
som:=0;
for j:=i+1 to 4 do
begin
h:=h+1;
som:=table[i].numero+table[j].numero;
prendodue[h].somma:=som;
prendodue[h].indice1:=i;
prendodue[h].indice2:=j;
end;
end;
for i:=1 to 6 do if prendodue[i].somma=7 then begin coppiasette:=true; ricordaidcoppiasette:=i; end;
if settebinmano=true then
begin if setteintable=true then writeln ('7','G',' ','7',table[idtablesette].seme)
else
begin
if coppiasette=true then writeln (mano[idmanosette].numero, mano[idmanosette].seme,' ',table[prendodue[ricordaidcoppiasette].indice1].numero, table[prendodue[ricordaidcoppiasette].indice1].seme,' ',table[prendodue[ricordaidcoppiasette].indice2].numero, table[prendodue[ricordaidcoppiasette].indice2].seme)
else
if ternasette=true then begin write (mano[idmanosette].numero, mano[idmanosette].seme,' ');
for z:=1 to 4 do if z<>ricordaidternasette then write (table[z].numero, table[z].seme,' '); writeln; end;
end
end
else if settebintable=true then
begin for i:=1 to 3 do if mano[i].numero=7 then writeln ('7','G',' ','7',mano[i].seme); end
else if fattoscopa=true then begin write(mano[ricordaidscopa].numero,mano[ricordaidscopa].seme,' ');
for j:=1 to 4 do write(table[j].numero,table[j].seme,' '); writeln;end
else if (setteinmano=true) then begin if setteintable=true then writeln (mano[idmanosette].numero, mano[idmanosette].seme,' ',table[idtablesette].numero, table[idtablesette].seme)
else
begin
if coppiasette=true then writeln (mano[idmanosette].numero, mano[idmanosette].seme,' ',table[prendodue[ricordaidcoppiasette].indice1].numero, table[prendodue[ricordaidcoppiasette].indice1].seme,' ',table[prendodue[ricordaidcoppiasette].indice2].numero, table[prendodue[ricordaidcoppiasette].indice2].seme)
else
if ternasette=true then begin write (mano[idmanosette].numero, mano[idmanosette].seme,' ');
for z:=1 to 4 do if z<>ricordaidternasette then write (table[z].numero, table[z].seme,' '); writeln; end;
end;
end;
end.
cHJvZ3JhbSBzY29wYTsKdHlwZSBjYXJ0YSA9IHJlY29yZAogICAgICAgICAgICAgICAgICAgbnVtZXJvOmxvbmdpbnQ7CiAgICAgICAgICAgICAgICAgICBzZW1lOmNoYXIKICAgICAgICAgICAgICAgIGVuZDsKICAgICBjb3BwaWUgPSByZWNvcmQKICAgICAgICAgICAgICAgICAgIHNvbW1hOmxvbmdpbnQ7CiAgICAgICAgICAgICAgICAgICBpbmRpY2UxOmxvbmdpbnQ7CiAgICAgICAgICAgICAgICAgICBpbmRpY2UyOmxvbmdpbnQ7CiAgICAgICAgICAgICAgICBlbmQ7ICAgICAgICAgICAgCnZhcgogICAgbGluZTogYW5zaXN0cmluZzsKICAgIGksaiwgaCx3LHosIHRvdCwgc29tLCBudW1iZXIsIHJpY29yZGFpZHNjb3BhLHJpY29yZGFpZDIsIHJpY29yZGFpZGNvcHBpYXNldHRlLGlkbWFub3NldHRlLCBpZHRhYmxlc2V0dGUsIHJpY29yZGFpZHRlcm5hc2V0dGU6IGxvbmdpbnQ7CiAgICBzdWl0OiBjaGFyOwogICAgbWFubywgdGFibGU6IGFycmF5WzEuLjRdIG9mIGNhcnRhOwogICAgcHJlbmRvZHVlIDogYXJyYXlbMS4uNl0gb2YgY29wcGllOwogICAgc2V0dGViaW5tYW5vLCBzZXR0ZWJpbnRhYmxlLCBzZXR0ZWlubWFubyxzZXR0ZWludGFibGUsY29wcGlhc2V0dGUsIGZhdHRvc2NvcGEsdGVybmFzZXR0ZSwgdHJvdmF0b3NldHRlLHRyb3ZhdG9zZXR0ZTEsIHRyb3ZhdG9zZXR0ZTI6IGJvb2xlYW47CiAgICB0ZXJuYTphcnJheSBbMS4uNF0gb2YgbG9uZ2ludDsKICAgIApwcm9jZWR1cmUgcmVhZGNhcmQodmFyIHM6IGFuc2lzdHJpbmc7IHZhciBudW1iZXI6IGxvbmdpbnQ7IHZhciBzdWl0OiBjaGFyKTsKYmVnaW4KICAgIGlmIChzWzFdID0gJzEnKSBhbmQgKHNbMl0gPSAnMCcpIHRoZW4KICAgIGJlZ2luCiAgICAgICAgbnVtYmVyIDo9IDEwOwogICAgICAgIHN1aXQgOj0gc1szXTsKICAgICAgICBzIDo9IGNvcHkocywgNSwgbGVuZ3RoKHMpKTsKICAgIGVuZCBlbHNlIGJlZ2luCiAgICAgICAgbnVtYmVyIDo9IG9yZChzWzFdKSAtIG9yZCgnMCcpOwogICAgICAgIGlmIG9yZChzWzJdKTw+MzIgdGhlbiAKICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3VpdCA6PSBzWzJdOwogICAgICAgICAgICAgICAgICAgICAgICAgIHMgOj0gY29weShzLCA0LCBsZW5ndGgocykpOwogICAgICAgICAgICAgICAgICAgICAgICAgZW5kICAKICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VpdCA6PSBzWzIrMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzIDo9IGNvcHkocywgNCsxLCBsZW5ndGgocykpOwogICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDsgIAogICAgZW5kOwplbmQ7CgoKCmJlZ2luCnsKICAgIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmVzIGlmIHlvdSB3YW50IHRvIHJlYWQvd3JpdGUgZnJvbSBmaWxlcwogICAgYXNzaWduKGlucHV0LCAgJ2lucHV0LnR4dCcpOyAgcmVzZXQoaW5wdXQpOwogICAgYXNzaWduKG91dHB1dCwgJ291dHB1dC50eHQnKTsgcmV3cml0ZShvdXRwdXQpOwp9CiAgICBzZXR0ZWJpbm1hbm86PWZhbHNlOyBzZXR0ZWJpbnRhYmxlOj1mYWxzZTsgdGVybmFzZXR0ZTo9ZmFsc2U7c2V0dGVpbm1hbm86PWZhbHNlOyBjb3BwaWFzZXR0ZTo9ZmFsc2U7IHNldHRlaW50YWJsZTo9ZmFsc2U7ZmF0dG9zY29wYTo9ZmFsc2U7IHRyb3ZhdG9zZXR0ZTE6PWZhbHNlOyB0cm92YXRvc2V0dGUyOj1mYWxzZTsKICAgIHJlYWRsbihsaW5lKTsKICAgIGZvciBpOj0xIHRvIDMgZG8KICAgIGJlZ2luCiAgICAgICAgeyBjYXJkIGluIGhhbmQgfQogICAgICAgIHJlYWRjYXJkKGxpbmUsIG51bWJlciwgc3VpdCk7CiAgICAgICAgd3JpdGVsbiAobGluZSk7CiAgICAgICAgbWFub1tpXS5udW1lcm86PW51bWJlcjsKICAgICAgICBtYW5vW2ldLnNlbWU6PXN1aXQ7CiAgICAgICAgaWYgKG51bWJlcj03KSBhbmQgKHN1aXQ9J0cnKSB0aGVuIHNldHRlYmlubWFubzo9dHJ1ZTsKICAgICAgICB7IHVzZSBudW1iZXIgYW5kIHN1aXQgfQogICAgZW5kOwoKICAgIHJlYWRsbihsaW5lKTsKICAgIHRvdDo9MDsgCiAgICBmb3IgaTo9MSB0byA0IGRvCiAgICBiZWdpbgogICAgICAgIHsgY2FyZCBvbiB0YWJsZSB9CiAgICAgICAgcmVhZGNhcmQobGluZSwgbnVtYmVyLCBzdWl0KTsKICAgICAgICB3cml0ZWxuKGxpbmUpOwogICAgICAgIHRhYmxlW2ldLm51bWVybzo9bnVtYmVyOwogICAgICAgIHRhYmxlW2ldLnNlbWU6PXN1aXQ7CiAgICAgICAgdG90Oj10b3QrbnVtYmVyOwogICAgICAgIGlmIChudW1iZXI9NykgYW5kIChzdWl0PSdHJykgdGhlbiBzZXR0ZWJpbnRhYmxlOj10cnVlOwogICAgICAgIHsgdXNlIG51bWJlciBhbmQgc3VpdCB9CiAgICBlbmQ7CiAgICBmb3IgaTo9MSB0byAzIGRvIGlmIG1hbm9baV0ubnVtZXJvPXRvdCB0aGVuIGJlZ2luIGZhdHRvc2NvcGE6PXRydWU7IHJpY29yZGFpZHNjb3BhOj1pOyBlbmQ7CiAgICBoOj0xOyBmb3IgaTo9MSB0byA0IGRvIGJlZ2luIHRlcm5hW2hdOj10b3QtdGFibGVbaV0ubnVtZXJvOyBoOj1oKzE7IGVuZDsKICAgIGZvciBpOj0xIHRvIDQgZG8gaWYgdGVybmFbaV09NyB0aGVuIGJlZ2luIHRlcm5hc2V0dGU6PXRydWU7IHJpY29yZGFpZHRlcm5hc2V0dGU6PWk7IGVuZDsKICAgIGZvciBpOj0xIHRvIDMgZG8gaWYgbWFub1tpXS5udW1lcm89NyB0aGVuIGJlZ2luIHNldHRlaW5tYW5vOj10cnVlOyBpZG1hbm9zZXR0ZTo9aTsgZW5kOwogICAgZm9yIGk6PTEgdG8gNCBkbyBpZiB0YWJsZVtpXS5udW1lcm89NyB0aGVuIGJlZ2luIHNldHRlaW50YWJsZTo9dHJ1ZTsgaWR0YWJsZXNldHRlOj1pOyBlbmQ7CiAgICBoOj0wOwogICAgZm9yIGk6PSAxIHRvIDMgZG8KICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgIHNvbTo9MDsKICAgICAgICAgICAgICAgICAgZm9yIGo6PWkrMSB0byA0IGRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoOj1oKzE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvbTo9dGFibGVbaV0ubnVtZXJvK3RhYmxlW2pdLm51bWVybzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlbmRvZHVlW2hdLnNvbW1hOj1zb207CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZW5kb2R1ZVtoXS5pbmRpY2UxOj1pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVuZG9kdWVbaF0uaW5kaWNlMjo9ajsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDsKICAgICAgICAgICAgICAgIGVuZDsgCiAgICBmb3IgaTo9MSB0byA2IGRvIGlmIHByZW5kb2R1ZVtpXS5zb21tYT03IHRoZW4gIGJlZ2luIGNvcHBpYXNldHRlOj10cnVlOyByaWNvcmRhaWRjb3BwaWFzZXR0ZTo9aTsgZW5kOyAgICAgICAgICAgCiAgICBpZiBzZXR0ZWJpbm1hbm89dHJ1ZSB0aGVuIAogICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luICAgIGlmIHNldHRlaW50YWJsZT10cnVlIHRoZW4gIHdyaXRlbG4gKCc3JywnRycsJyAnLCc3Jyx0YWJsZVtpZHRhYmxlc2V0dGVdLnNlbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvcHBpYXNldHRlPXRydWUgdGhlbiB3cml0ZWxuIChtYW5vW2lkbWFub3NldHRlXS5udW1lcm8sIG1hbm9baWRtYW5vc2V0dGVdLnNlbWUsJyAnLHRhYmxlW3ByZW5kb2R1ZVtyaWNvcmRhaWRjb3BwaWFzZXR0ZV0uaW5kaWNlMV0ubnVtZXJvLCB0YWJsZVtwcmVuZG9kdWVbcmljb3JkYWlkY29wcGlhc2V0dGVdLmluZGljZTFdLnNlbWUsJyAnLHRhYmxlW3ByZW5kb2R1ZVtyaWNvcmRhaWRjb3BwaWFzZXR0ZV0uaW5kaWNlMl0ubnVtZXJvLCB0YWJsZVtwcmVuZG9kdWVbcmljb3JkYWlkY29wcGlhc2V0dGVdLmluZGljZTJdLnNlbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVybmFzZXR0ZT10cnVlIHRoZW4gIGJlZ2luIHdyaXRlIChtYW5vW2lkbWFub3NldHRlXS5udW1lcm8sIG1hbm9baWRtYW5vc2V0dGVdLnNlbWUsJyAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Igejo9MSB0byA0ICBkbyBpZiB6PD5yaWNvcmRhaWR0ZXJuYXNldHRlIHRoZW4gd3JpdGUgKHRhYmxlW3pdLm51bWVybywgdGFibGVbel0uc2VtZSwnICcpOyB3cml0ZWxuOyBlbmQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCAKICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgICAgCiAgICBlbHNlIGlmIHNldHRlYmludGFibGU9dHJ1ZSB0aGVuIAogICAgICAgICAgIGJlZ2luIGZvciBpOj0xIHRvIDMgZG8gaWYgbWFub1tpXS5udW1lcm89NyB0aGVuIHdyaXRlbG4gKCc3JywnRycsJyAnLCc3JyxtYW5vW2ldLnNlbWUpOyBlbmQKICAgICBlbHNlIGlmIGZhdHRvc2NvcGE9dHJ1ZSB0aGVuICBiZWdpbiB3cml0ZShtYW5vW3JpY29yZGFpZHNjb3BhXS5udW1lcm8sbWFub1tyaWNvcmRhaWRzY29wYV0uc2VtZSwnICcpOyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Igajo9MSB0byA0IGRvIHdyaXRlKHRhYmxlW2pdLm51bWVybyx0YWJsZVtqXS5zZW1lLCcgJyk7IHdyaXRlbG47ZW5kCiAgICAgZWxzZSBpZiAoc2V0dGVpbm1hbm89dHJ1ZSkgIHRoZW4gYmVnaW4gaWYgc2V0dGVpbnRhYmxlPXRydWUgdGhlbiB3cml0ZWxuICAobWFub1tpZG1hbm9zZXR0ZV0ubnVtZXJvLCBtYW5vW2lkbWFub3NldHRlXS5zZW1lLCcgJyx0YWJsZVtpZHRhYmxlc2V0dGVdLm51bWVybywgdGFibGVbaWR0YWJsZXNldHRlXS5zZW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb3BwaWFzZXR0ZT10cnVlIHRoZW4gd3JpdGVsbiAobWFub1tpZG1hbm9zZXR0ZV0ubnVtZXJvLCBtYW5vW2lkbWFub3NldHRlXS5zZW1lLCcgJyx0YWJsZVtwcmVuZG9kdWVbcmljb3JkYWlkY29wcGlhc2V0dGVdLmluZGljZTFdLm51bWVybywgdGFibGVbcHJlbmRvZHVlW3JpY29yZGFpZGNvcHBpYXNldHRlXS5pbmRpY2UxXS5zZW1lLCcgJyx0YWJsZVtwcmVuZG9kdWVbcmljb3JkYWlkY29wcGlhc2V0dGVdLmluZGljZTJdLm51bWVybywgdGFibGVbcHJlbmRvZHVlW3JpY29yZGFpZGNvcHBpYXNldHRlXS5pbmRpY2UyXS5zZW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXJuYXNldHRlPXRydWUgdGhlbiAgYmVnaW4gd3JpdGUgKG1hbm9baWRtYW5vc2V0dGVdLm51bWVybywgbWFub1tpZG1hbm9zZXR0ZV0uc2VtZSwnICcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB6Oj0xIHRvIDQgIGRvIGlmIHo8PnJpY29yZGFpZHRlcm5hc2V0dGUgdGhlbiB3cml0ZSAodGFibGVbel0ubnVtZXJvLCB0YWJsZVt6XS5zZW1lLCcgJyk7IHdyaXRlbG47IGVuZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOyAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7ICAKICAgCmVuZC4K