fork download
  1. #include <iostream>
  2. #include <cctype>
  3. #include <cstring>
  4. using namespace std;
  5.  
  6. int main() {
  7. int a[15][15];
  8. for (int i = 0; i < 15; i++) {
  9. for (int j = 0; j < 15; j++) {
  10. a[i][j] = 0;
  11. }
  12. }
  13. for (int i = 3; i < 12; i++) {
  14. a[i][3] = 1;
  15. a[3][i] = 1;
  16. }
  17. for (int i = 5; i < 10; i++) {
  18. a[i][5] = 1;
  19. a[5][i] = 1;
  20. }
  21. a[7][7] = 1;
  22. a[2][2] = 1;
  23. a[2][3] = 1;
  24. a[3][2] = 1;
  25. a[2][12] = 1;
  26. a[3][12] = 1;
  27. a[11][12] = 1;
  28. char mes[1000];
  29. char er_mes[1000];
  30. int mode_1, mode_2, mode_3;
  31. cin >> mes >> er_mes >> mode_1 >> mode_2 >> mode_3;
  32. int len1 = strlen(mes);
  33. int len2 = strlen(er_mes);
  34. strcat(mes, er_mes);
  35. int len = strlen(mes);
  36. int d[300] = { 0 };
  37. int count = 0;
  38. char check = 'u';
  39. int div = 0;
  40. int rem[5] = { 0 };
  41. int tmp = 0;
  42. for (int j = 0; j < len; j++) {
  43. if (check == 'u') {
  44. if (isupper(mes[j])) {
  45. int tmp = mes[j] - 63;
  46. div = tmp;
  47. for (int i = 0; i < 5; i++) {
  48. rem[4 - i] = div % 2;
  49. div /= 2;
  50. }
  51. for (int i = 0; i < 5; i++) {
  52. d[count + i] = rem[i];
  53. }
  54. count += 5;
  55. }
  56. else if (islower(mes[j])) {
  57. d[count] = 1;
  58. d[count + 1] = 1;
  59. d[count + 2] = 1;
  60. d[count + 3] = 0;
  61. d[count + 4] = 0;
  62. count += 5;
  63. int tmp = mes[j] - 95;
  64. div = tmp;
  65. for (int i = 0; i < 5; i++) {
  66. rem[4 - i] = div % 2;
  67. div /= 2;
  68. }
  69. for (int i = 0; i < 5; i++) {
  70. d[count + i] = rem[i];
  71. }
  72. count += 5;
  73. check = 'l';
  74.  
  75. }
  76. else {
  77. d[count] = 1;
  78. d[count + 1] = 1;
  79. d[count + 2] = 1;
  80. d[count + 3] = 1;
  81. d[count + 4] = 0;
  82. count += 5;
  83. if (mes[j] >= 48 && mes[j] <= 57) {
  84. tmp = mes[j] - 46;
  85. }
  86. else if (mes[j] == 44) {
  87. tmp = 12;
  88. }
  89. else if (mes[j] == 46) {
  90. tmp = 13;
  91. }
  92. div = tmp;
  93. for (int i = 0; i < 5; i++) {
  94. rem[4 - i] = div % 2;
  95. div /= 2;
  96. }
  97. for (int i = 0; i < 4; i++) {
  98. d[count + i] = rem[i + 1];
  99. }
  100. count += 4;
  101. check = 'd';
  102. }
  103. }
  104. else if (check == 'l') {
  105. if (isupper(mes[j])) {
  106. d[count] = 1;
  107. d[count + 1] = 1;
  108. d[count + 2] = 1;
  109. d[count + 3] = 0;
  110. count += 4;
  111. int tmp = mes[j] - 63;
  112. div = tmp;
  113. for (int i = 0; i < 5; i++) {
  114. rem[4 - i] = div % 2;
  115. div /= 2;
  116. }
  117. for (int i = 0; i < 5; i++) {
  118. d[count + i] = rem[i];
  119. }
  120. count += 5;
  121. check = 'u';
  122. }
  123. else if (islower(mes[j])) {
  124. int tmp = mes[j] - 95;
  125. div = tmp;
  126. for (int i = 0; i < 5; i++) {
  127. rem[4 - i] = div % 2;
  128. div /= 2;
  129. }
  130. for (int i = 0; i < 5; i++) {
  131. d[count + i] = rem[i];
  132. }
  133. count += 5;
  134. check = 'l';
  135. }
  136. else {
  137. d[count] = 1;
  138. d[count + 1] = 1;
  139. d[count + 2] = 1;
  140. d[count + 3] = 1;
  141. d[count + 4] = 0;
  142. count += 5;
  143. if (mes[j] >= 48 && mes[j] <= 57) {
  144. tmp = mes[j] - 46;
  145. }
  146. else if (mes[j] == 44) {
  147. tmp = 12;
  148. }
  149. else if (mes[j] == 46) {
  150. tmp = 13;
  151. }
  152. div = tmp;
  153. for (int i = 0; i < 5; i++) {
  154. rem[4 - i] = div % 2;
  155. div /= 2;
  156. }
  157. for (int i = 0; i < 4; i++) {
  158. d[count + i] = rem[i + 1];
  159. }
  160. count += 4;
  161. check = 'd';
  162. }
  163. }
  164. else if (check == 'd') {
  165. if (isupper(mes[j])) {
  166. d[count] = 1;
  167. d[count + 1] = 1;
  168. d[count + 2] = 1;
  169. d[count + 3] = 0;
  170. count += 4;
  171. int tmp = mes[j] - 63;
  172. div = tmp;
  173. for (int i = 0; i < 5; i++) {
  174. rem[4 - i] = div % 2;
  175. div /= 2;
  176. }
  177. for (int i = 0; i < 5; i++) {
  178. d[count + i] = rem[i];
  179. }
  180. count += 5;
  181. check = 'u';
  182. }
  183. else if (islower(mes[j])) {
  184. d[count] = 1;
  185. d[count + 1] = 1;
  186. d[count + 2] = 1;
  187. d[count + 3] = 0;
  188. d[count + 4] = 0;
  189. count += 5;
  190. int tmp = mes[j] - 95;
  191. div = tmp;
  192. for (int i = 0; i < 5; i++) {
  193. rem[4 - i] = div % 2;
  194. div /= 2;
  195. }
  196. for (int i = 0; i < 5; i++) {
  197. d[count + i] = rem[i];
  198. }
  199. count += 5;
  200. check = 'l';
  201. }
  202. else {
  203. if (mes[j] >= 48 && mes[j] <= 57) {
  204. tmp = mes[j] - 46;
  205. }
  206. else if (mes[j] == 44) {
  207. tmp = 12;
  208. }
  209. else if (mes[j] == 46) {
  210. tmp = 13;
  211. }
  212. div = tmp;
  213. for (int i = 0; i < 5; i++) {
  214. rem[4 - i] = div % 2;
  215. div /= 2;
  216. }
  217. for (int i = 0; i < 4; i++) {
  218. d[count + i] = rem[i + 1];
  219. }
  220. count += 4;
  221. check = 'd';
  222. }
  223. }
  224. }
  225. int count2 = 0;
  226. for (int i = 1; i < 13; i++) {
  227. a[i][0] = d[count2];
  228. a[i][1] = d[count2 + 1];
  229. count2 += 2;
  230. }
  231. for (int i = 0; i < 13; i++) {
  232. a[14][i] = d[count2];
  233. a[13][i] = d[count2 + 1];
  234. count2 += 2;
  235. }
  236. for (int i = 14; i > 1; i--) {
  237. a[i][14] = d[count2];
  238. a[i][13] = d[count2 + 1];
  239. count2 += 2;
  240. }
  241. for (int i = 14; i > 1; i--) {
  242. if (count2 <= count) {
  243. a[0][i] = d[count2];
  244. a[1][i] = d[count2 + 1];
  245. count2 += 2;
  246. }
  247. }
  248. int mode_0 = len1 - 1;
  249. div = mode_0;
  250. if (div % 2 == 1) {
  251. a[4][12] = 1;
  252. }
  253. div /= 2;
  254. for (int i = 0; i < 5; i++) {
  255. if (div % 2 == 1) {
  256. a[3][10 - i] = 1;
  257. }
  258. div /= 2;
  259. }
  260. div = mode_1;
  261. for (int i = 0; i < 6; i++) {
  262. if (div % 2 == 1) {
  263. a[5 + i][12] = 1;
  264. }
  265. div /= 2;
  266. }
  267. div = mode_2;
  268. for (int i = 0; i < 7; i++) {
  269. if (div % 2 == 1) {
  270. a[12][4 + i] = 1;
  271. }
  272. div /= 2;
  273. }
  274. div = mode_3;
  275. for (int i = 0; i < 7; i++) {
  276. if (div % 2 == 1) {
  277. a[4 + i][2] = 1;
  278. }
  279. div /= 2;
  280. }
  281. for (int i = 0; i < 15; i++) {
  282. for (int j = 0; j < 15; j++) {
  283. cout << a[i][j];
  284. }
  285. cout << '\n';
  286. }
  287. for (int i = 0; i < 300; i++){
  288. cout << d[i] << ' ';
  289. }
  290. }
Success #stdin #stdout 0.01s 5496KB
stdin
a1BCA2
,AEMGGMABV
50
99
103
stdout
000101001001001
110111100001100
101100000000100
001111111111100
001100000000110
101101111100001
111101000000111
110101010000000
000101000000011
011101000000100
111100000000101
110100000000100
000011000110000
010000011001011
010100111010110
1 1 1 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0