#include <stdio.h>
#define F0(N1, N2, N3, N4)\
for ( ; ; ) {\
printf("[%s%s%s%s%s%s ] の中から数字を選んでください\n",\
(N1 != '1' && N2 != '1' && N3 != '1' && N4 != '1' ? " 1" : ""),\
(N1 != '2' && N2 != '2' && N3 != '2' && N4 != '2' ? " 2" : ""),\
(N1 != '3' && N2 != '3' && N3 != '3' && N4 != '3' ? " 3" : ""),\
(N1 != '4' && N2 != '4' && N3 != '4' && N4 != '4' ? " 4" : ""),\
(N1 != '5' && N2 != '5' && N3 != '5' && N4 != '5' ? " 5" : ""),\
(N1 != '6' && N2 != '6' && N3 != '6' && N4 != '6' ? " 6" : ""));\
scanf("%c%*c", &n);\
if (n != N1 && n != N2 && n != N3 && n != N4 && n >= '1' && n <= '6') break;\
printf("無視されました\n");\
}
#define F1(N1)\
F0(N1, 0, 0, 0)\
switch (n) {\
case '1': F2('1', N1)\
case '2': F2('2', N1)\
case '3': F2('3', N1)\
case '4': F2('4', N1)\
case '5': F2('5', N1)\
case '6': F2('6', N1)\
}
#define F2(N1, N2)\
F0(N1, N2, 0, 0)\
switch (n) {\
case '1': F3('1', N1, N2)\
case '2': F3('2', N1, N2)\
case '3': F3('3', N1, N2)\
case '4': F3('4', N1, N2)\
case '5': F3('5', N1, N2)\
case '6': F3('6', N1, N2)\
}
#define F3(N1, N2, N3)\
F0(N1, N2, N3, 0)\
switch (n) {\
case '1': F4('1', N1, N2, N3)\
case '2': F4('2', N1, N2, N3)\
case '3': F4('3', N1, N2, N3)\
case '4': F4('4', N1, N2, N3)\
case '5': F4('5', N1, N2, N3)\
case '6': F4('6', N1, N2, N3)\
}
#define F4(N1, N2, N3, N4)\
F0(N1, N2, N3, N4)\
printf("%c%c%c%c%c%c\n", 309 - n - N1 - N2 - N3 - N4, n, N1, N2, N3, N4);\
return 0;
int main()
{
char n;
F0(0, 0, 0, 0)
switch (n) {
case '1': F1('1')
case '2': F1('2')
case '3': F1('3')
case '4': F1('4')
case '5': F1('5')
case '6': F1('6')
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIEYwKE4xLCBOMiwgTjMsIE40KVwKICBmb3IgKCA7IDsgKSB7XAogICAgcHJpbnRmKCJbJXMlcyVzJXMlcyVzIF0g44Gu5Lit44GL44KJ5pWw5a2X44KS6YG444KT44Gn44GP44Gg44GV44GEXG4iLFwKICAgICAgKE4xICE9ICcxJyAmJiBOMiAhPSAnMScgJiYgTjMgIT0gJzEnICYmIE40ICE9ICcxJyA/ICIgMSIgOiAiIiksXAogICAgICAoTjEgIT0gJzInICYmIE4yICE9ICcyJyAmJiBOMyAhPSAnMicgJiYgTjQgIT0gJzInID8gIiAyIiA6ICIiKSxcCiAgICAgIChOMSAhPSAnMycgJiYgTjIgIT0gJzMnICYmIE4zICE9ICczJyAmJiBONCAhPSAnMycgPyAiIDMiIDogIiIpLFwKICAgICAgKE4xICE9ICc0JyAmJiBOMiAhPSAnNCcgJiYgTjMgIT0gJzQnICYmIE40ICE9ICc0JyA/ICIgNCIgOiAiIiksXAogICAgICAoTjEgIT0gJzUnICYmIE4yICE9ICc1JyAmJiBOMyAhPSAnNScgJiYgTjQgIT0gJzUnID8gIiA1IiA6ICIiKSxcCiAgICAgIChOMSAhPSAnNicgJiYgTjIgIT0gJzYnICYmIE4zICE9ICc2JyAmJiBONCAhPSAnNicgPyAiIDYiIDogIiIpKTtcCiAgICBzY2FuZigiJWMlKmMiLCAmbik7XAogICAgaWYgKG4gIT0gTjEgJiYgbiAhPSBOMiAmJiBuICE9IE4zICYmIG4gIT0gTjQgJiYgbiA+PSAnMScgJiYgbiA8PSAnNicpIGJyZWFrO1wKICAgIHByaW50Zigi54Sh6KaW44GV44KM44G+44GX44GfXG4iKTtcCiAgfQoKI2RlZmluZSBGMShOMSlcCiAgRjAoTjEsIDAsIDAsIDApXAogIHN3aXRjaCAobikge1wKICAgIGNhc2UgJzEnOiBGMignMScsIE4xKVwKICAgIGNhc2UgJzInOiBGMignMicsIE4xKVwKICAgIGNhc2UgJzMnOiBGMignMycsIE4xKVwKICAgIGNhc2UgJzQnOiBGMignNCcsIE4xKVwKICAgIGNhc2UgJzUnOiBGMignNScsIE4xKVwKICAgIGNhc2UgJzYnOiBGMignNicsIE4xKVwKICB9CgojZGVmaW5lIEYyKE4xLCBOMilcCiAgRjAoTjEsIE4yLCAwLCAwKVwKICBzd2l0Y2ggKG4pIHtcCiAgICBjYXNlICcxJzogRjMoJzEnLCBOMSwgTjIpXAogICAgY2FzZSAnMic6IEYzKCcyJywgTjEsIE4yKVwKICAgIGNhc2UgJzMnOiBGMygnMycsIE4xLCBOMilcCiAgICBjYXNlICc0JzogRjMoJzQnLCBOMSwgTjIpXAogICAgY2FzZSAnNSc6IEYzKCc1JywgTjEsIE4yKVwKICAgIGNhc2UgJzYnOiBGMygnNicsIE4xLCBOMilcCiAgfQoKI2RlZmluZSBGMyhOMSwgTjIsIE4zKVwKICBGMChOMSwgTjIsIE4zLCAwKVwKICBzd2l0Y2ggKG4pIHtcCiAgICBjYXNlICcxJzogRjQoJzEnLCBOMSwgTjIsIE4zKVwKICAgIGNhc2UgJzInOiBGNCgnMicsIE4xLCBOMiwgTjMpXAogICAgY2FzZSAnMyc6IEY0KCczJywgTjEsIE4yLCBOMylcCiAgICBjYXNlICc0JzogRjQoJzQnLCBOMSwgTjIsIE4zKVwKICAgIGNhc2UgJzUnOiBGNCgnNScsIE4xLCBOMiwgTjMpXAogICAgY2FzZSAnNic6IEY0KCc2JywgTjEsIE4yLCBOMylcCiAgfQoKI2RlZmluZSBGNChOMSwgTjIsIE4zLCBONClcCiAgRjAoTjEsIE4yLCBOMywgTjQpXAogIHByaW50ZigiJWMlYyVjJWMlYyVjXG4iLCAzMDkgLSBuIC0gTjEgLSBOMiAtIE4zIC0gTjQsIG4sIE4xLCBOMiwgTjMsIE40KTtcCiAgcmV0dXJuIDA7CgppbnQgbWFpbigpCnsKICBjaGFyIG47CiAgRjAoMCwgMCwgMCwgMCkKICBzd2l0Y2ggKG4pIHsKICAgIGNhc2UgJzEnOiBGMSgnMScpCiAgICBjYXNlICcyJzogRjEoJzInKQogICAgY2FzZSAnMyc6IEYxKCczJykKICAgIGNhc2UgJzQnOiBGMSgnNCcpCiAgICBjYXNlICc1JzogRjEoJzUnKQogICAgY2FzZSAnNic6IEYxKCc2JykKICB9Cn0K