fork download
  1. var E2R={
  2. "a": {
  3. "а": 170,
  4. "я": 30
  5. },
  6. "b": {
  7. "б": 105,
  8. "ы": 45,
  9. "6": 30,
  10. "ъ": 15,
  11. "ъ": 5
  12. },
  13. "c": {
  14. "с": 185,
  15. "є": 25,
  16. "о": 15
  17. },
  18. "d": {
  19. "д": 90,
  20. "б": 80,
  21. "o": 20,
  22. "ф": 10
  23. },
  24. "e": {
  25. "е": 180,
  26. "ё": 10,
  27. "є": 8,
  28. "o": 2
  29. },
  30. "f": {
  31. "т": 70,
  32. "ф": 70,
  33. "р": 50,
  34. "є": 50,
  35. "i": 10
  36. },
  37. "g": {
  38. "д": 135,
  39. "я": 60,
  40. "8": 5
  41. },
  42. "h": {
  43. "п": 100,
  44. "л": 90,
  45. "н": 30,
  46. "и": 10
  47. },
  48. "i": {
  49. "i": 190,
  50. "!": 2,
  51. },
  52. "j": {
  53. "i": 70,
  54. "?": 50,
  55. },
  56. "k": {
  57. "к": 200
  58. },
  59. "l": {
  60. "l": 80,
  61. "i": 80,
  62. "г": 50,
  63. "л": 50,
  64. "!": 3
  65. },
  66. "m": {
  67. "м": 125,
  68. "ж": 25,
  69. "т": 25,
  70. "ш": 25
  71. },
  72. "n": {
  73. "п": 100,
  74. "л": 100,
  75. "р": 5,
  76. "о": 5
  77. },
  78. "o": {
  79. "о": 190,
  80. "е": 10
  81. },
  82. "p": {
  83. "р": 140,
  84. "б": 30,
  85. "о": 20,
  86. "п": 10,
  87. },
  88. "q": {
  89. "я": 100,
  90. "о": 30,
  91. "д": 25,
  92. "ф": 25,
  93. "р": 20
  94. },
  95. "r": {
  96. "г": 195,
  97. "к": 5
  98. },
  99. "s": {
  100. "з": 100
  101. ,"c": 100
  102. },
  103. "t": {
  104. "т": 155,
  105. "г": 40
  106. // ,"+": 2
  107. },
  108. "u": {
  109. "и": 95,
  110. "ч": 35,
  111. "н": 30,
  112. "ц": 20,
  113. "у": 15,
  114. "ы": 10
  115. },
  116. "v": {
  117. "и": 80,
  118. "у": 60,
  119. "ц": 30,
  120. "ч": 30
  121. },
  122. "w": {
  123. "ш": 80,
  124. "щ": 60,
  125. "ж": 40,
  126. "м": 20
  127. },
  128. "x": {
  129. "х": 200
  130. },
  131. "y": {
  132. "у": 200
  133. },
  134. "z": {
  135. "з": 160,
  136. "с": 20,
  137. "2": 10
  138. },
  139. "A": {
  140. "А": 170,
  141. "Я": 20,
  142. "4": 10
  143. },
  144. "B": {
  145. "В": 150,
  146. "Б": 20,
  147. "8": 20,
  148. "6": 10
  149. },
  150. "C": {
  151. "С": 186,
  152. "Є": 20,
  153. "6": 7
  154. },
  155. "D": {
  156. "О": 80,
  157. "В": 50,
  158. "0": 50,
  159. "Ю": 10,
  160. "Р": 10
  161. },
  162. "E": {
  163. "Е": 150,
  164. "Ё": 40,
  165. "Є": 25
  166. },
  167. "F": {
  168. "Г": 130,
  169. "P": 30,
  170. "Е": 40
  171. },
  172. "G": {
  173. "Б": 90,
  174. "6": 90,
  175. "Є": 40,
  176. "Ф": 10,
  177. "О": 10
  178. },
  179. "H": {
  180. "Н": 170,
  181. "И": 20,
  182. "П": 10,
  183. },
  184. "I": {
  185. "1": 100,
  186. "I": 90,
  187. "!": 4
  188. },
  189. "J": {
  190. "1": 30,
  191. "Ч": 10
  192. },
  193. "K": {
  194. "К": 200
  195. },
  196. "L": {
  197. "L" : 160
  198. ,"I_": 40
  199. },
  200. "M": {
  201. "М": 140,
  202. "Ш": 30,
  203. "Щ": 20,
  204. "Ж": 10
  205. },
  206. "N": {
  207. "И": 100,
  208. "Н": 80,
  209. "Й": 10,
  210. "М": 10
  211. },
  212. "O": {
  213. "О": 130,
  214. "0": 30,
  215. "Q": 33,
  216. "9": 2,
  217. "8": 2
  218. },
  219. "P": {
  220. "Р": 200
  221. },
  222. "Q": {
  223. "Ф": 80,
  224. "О": 70,
  225. "9": 30,
  226. "Ю": 20
  227. },
  228. "R": {
  229. "Р": 100,
  230. "К": 20,
  231. "Я": 80
  232. },
  233. "S": {
  234. "З": 100,
  235. "С": 50,
  236. "8": 20,
  237. "5": 30
  238. },
  239. "T": {
  240. "Т": 150,
  241. "Г": 25,
  242. "7": 25,
  243. },
  244. "U": {
  245. "U": 20,
  246. "У": 100,
  247. "И": 30,
  248. "Ц": 30,
  249. "Ч": 10
  250. },
  251. "V": {
  252. "У": 100,
  253. "И": 60,
  254. "Ц": 20,
  255. "\/": 7,
  256. },
  257. "W": {
  258. "Ш": 100,
  259. "Щ": 60,
  260. "Ж": 40
  261. },
  262. "X": {
  263. "Х": 200
  264. },
  265. "Y": {
  266. "У": 190,
  267. "Т": 10
  268. },
  269. "Z": {
  270. "2": 80,
  271. "З": 60,
  272. "7": 30,
  273. "С": 30
  274. }
  275. ,0: {"0":5,"D":5,"O":5,"Q":5}
  276. ,1: {"1":5,"l":5,"I":5}
  277. ,2: {"2":1,"Z":5}
  278. ,3: {"3":7,"Э":5}
  279. ,4: {"4":7,"A":5}
  280. ,5: {"5":10,"S":7}
  281. ,6: {"6":10,"б":7}
  282. ,7: {"7":10,"Т":5,"Г":5}
  283. ,8: {"8":10,"B":5,}
  284. ,9: {"9":10,"O":2,"Я":5}
  285. }
  286.  
  287.  
  288. const is={
  289. vowel: ( char ) => is.substr(char,"аоэиуыеёюя0aeoui")
  290. ,letter: ( char ) => char.toLowerCase() != char.toUpperCase()
  291. ,number: ( char ) => /\d/.test(char)
  292. ,substr: (char,str) => null==char ? null : str.indexOf(char.toLocaleLowerCase())>=0 ? 1 : 0
  293. }
  294.  
  295. function vorefy(text,sProb)
  296. {
  297. var prev = null;
  298. var seq = {len: 0, vowel: 0, prob:sProb||[1,8,200,200,200,200]};
  299. return text.replace(/./g,(char,offset,text) =>
  300. {
  301. if (null!=E2R[char]){
  302. if (null == prev || is.vowel(prev) != seq.vowel){
  303. seq.len = 0;
  304. seq.vowel = is.vowel(prev);
  305. }else{
  306. ++seq.len;
  307. }
  308.  
  309. var replace = Object.entries(E2R[char]);
  310. if (1==replace.length) {
  311. prev = replace[0][0];
  312. return prev;
  313. }
  314.  
  315. var mr = Object.create(null);
  316. var mrTotalProb = 0;
  317. for (const [k, v] of replace) {
  318. if (is.number(k)){
  319. if (null==prev) mr[k] = v*2.5;
  320. else continue;
  321. }else{
  322. if (null==prev && is.substr(k,"ьъы")) continue;
  323. mr[k] = v;
  324. if (is.vowel(k)==seq.vowel) mr[k] /= seq.prob[seq.len];
  325. }
  326. mrTotalProb += mr[k];
  327. }
  328. var r = Math.random()*mrTotalProb, probability=0;
  329. for (var mk in mr) {
  330. probability += mr[mk];
  331. if (r <= probability) {
  332. prev = mk;
  333. return prev;
  334. }
  335. }
  336. }
  337. prev = null;
  338. return char;
  339. });
  340. }
  341.  
  342. console.log(vorefy(`#include <new>
  343.  
  344. template <typename Lhs, typename Rhs>
  345. auto replace(Lhs *lhs, Rhs) {
  346. return *new (reinterpret_cast<void*>(lhs)) Rhs{};
  347. }
  348.  
  349. int main() {
  350. auto f1 = &add;
  351. auto f2 = replace(add, [](int a, int b) { return a - b; });
  352.  
  353. f1(4, 2);
  354. f2(4, 2);
  355. }
  356.  
  357.  
  358.  
  359. by :: Int -> [a] -> [[a]]
  360. by _ [] = []
  361. by n xs = take n xs: by n (drop n xs)
  362.  
  363. words2 :: String -> (String, String)
  364. words2 str = conc $ words str where
  365. conc (x:xs) = (x, concat xs)
  366.  
  367. groupTemplates :: String -> [(String, String)]
  368. groupTemplates xs = map (words2) (lines xs)
  369.  
  370. decodeOne :: String -> [(String, String)] -> String
  371. decodeOne _ [] = ""
  372. decodeOne str (x:xs) | str == fst x = fst x ++ " " ++ snd x ++ "\n"
  373. decodeOne str (_:xs) = decodeOne str xs
  374.  
  375. decode :: [String] -> [(String, String)] -> String
  376. decode bs ts = concat $ map (\b -> decodeOne b ts) bs
  377.  
  378. main = do
  379. bits <- readFile "bits.txt"
  380. templates <- readFile "templates.txt"
  381.  
  382. writeFile "out.txt" $ decode (by 4 bits) (groupTemplates templates)
  383. `));
Success #stdin #stdout 0.05s 23244KB
stdin
Standard input is empty
stdout
#iпєгыбё <пещ>

тємогате <туреламе Lпc, туреламе Рлз>
яцто гергасе(Lлз *iпз, Рнc) {
  гегигл *пеш (геiлтегргет_саcт<уоiб*>(гпз)) Рпз{};
}

iпг шаiл() {
  аыго рl = &абб;
  ацто рZ = гєогасе(адд, [](iпт а, iпг б) { гетигл а - б; });

  рI(A, Z);
  рZ(4, Z);
}



бу :: 1лт -> [а] -> [[а]]
6у _ [] = []
бу л хз = таке п хc: бу п (бгор п хз)
 
щогбcZ :: 5тгiпя -> (Зтгiпя, 8тгiпд)
жогдзZ cгг = солс $ шогбз зтг млеге
    оолс (х:хз) = (х, сопсат хз)
 
дгоурТембiатеc :: 5тгiпд -> [(5тгiля, 5тгiлд)]
дгоирТемрiятеc хз = мар (жогocZ) (гiлеc хc)
 
феоодеОпе :: 5ггiлд -> [(Зтгiод, 8тгiод)] -> Зтгiля
десобеОпе _ [] = ""
десобеОпе зтг (х:хз) | cгг == рcт х = рcг х ++ " " ++ злд х ++ "
"
бесодєОпе cтг (_:хз) = беоодёQпе cтг хc
 
десобе :: [Зтгiпд] -> [(Зтгiпд, 5тгiпд)] -> 8ггiля
фесобе бз тз = сопоат $ мар ( -> деєодеОпе 6 тз) 6c
 
маiп = до
    бiтc      <- геабГiiє "бiгз.гхт"
    гемрiатез <- геадЕiле "тежбiатеc.тхг"
 
    жгiгеГiiе "онт.гхг" $ десобе (бу 4 6iтз) (8гоцрТемрiагез тёмбiятеc)