Cún DDoouubbllee ssppeeaakk !!


57

Thử thách siêu đơn giản ngày hôm nay, hay là vậy?

Tôi cảm thấy như chúng ta đã nghe một chút công bằng về việc nói hai lần gần đây, hãy xác định nó theo cách có thể mã hóa ...

Nói đôi là khi mỗi và mọi ký tự trong một chuỗi văn bản được lặp lại ngay lập tức. Ví dụ:

"DDoouubbllee  ssppeeaakk!!"

Những quy định

  • Viết mã chấp nhận một đối số, một chuỗi.
  • Nó sẽ sửa đổi chuỗi này, sao chép mọi ký tự.
  • Sau đó, nó sẽ trả về phiên bản nói kép của chuỗi.
  • Đó là mã golf, hãy cố gắng đạt được điều này với số byte nhỏ nhất.
  • Vui lòng bao gồm một liên kết đến một trình thông dịch trực tuyến cho mã của bạn.
  • Chuỗi đầu vào sẽ chỉ chứa các ký tự trong phạm vi ASCII có thể in. Tham khảo: http://www.asciitable.com/mobile/

Bảng xếp hạng

Dưới đây là Stack Snippet để tạo cả bảng xếp hạng thông thường và tổng quan về người chiến thắng theo ngôn ngữ.

Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:

# Language Name, [Other information] N bytes

nơi Nlà kích thước của trình của bạn. Thông tin khác có thể bao gồm các cờ được đặt và nếu bạn đã cải thiện điểm số của mình (thường là một số bị loại như <s>M</s>). Nphải là số đúng nhất trong tiêu đề này và mọi thứ trước đầu tiên ,là tên của ngôn ngữ bạn đã sử dụng. Tên ngôn ngữ và từ bytescó thể là liên kết.

Ví dụ:

# [><>](http://esolangs.org/wiki/Fish), <s>162</s> 121 [bytes](https://esolangs.org/wiki/Fish#Instructions)

1
Nó sẽ sửa đổi chuỗi này . Bạn đang cố tình yêu cầu thông qua tham chiếu và sửa đổi tại chỗ? Và sau đó trả về một bản sao hoặc tham chiếu đến chuỗi sửa đổi đó? Nếu vậy, các ngôn ngữ như asm hoặc C sẽ cần chấp nhận chuỗi có độ dài rõ ràng (con trỏ + độ dài) trong đó độ dài là độ dài chuỗi hiện tại (với bộ đệm có kích thước gấp đôi) hoặc đó là tổng kích thước và bạn cần nhân đôi nửa thấp. Do đó, bạn cần bắt đầu từ cuối và làm việc ngược lại, hoặc phân bổ không gian đầu và sau đó sao chép lại. Nhưng có câu trả lời trong C và 8086 asm hoàn toàn vi phạm tất cả điều đó.
Peter Cordes

3
@PeterCordes Tôi không quan tâm nếu nó sửa đổi cùng một đối tượng hoặc xây dựng một đối tượng mới.
AJFaraday

2
Tôi khuyên bạn nên diễn đạt nó là "sửa đổi (hoặc tạo một bản sao đã sửa đổi) của chuỗi" để cho phép rõ ràng câu trả lời có hoặc không sửa đổi tại chỗ. Đơn giản hóa từ ngữ để "trả về một chuỗi dài gấp đôi, với mỗi ký tự được lặp lại" sẽ tốt nhưng sau đó không rõ ràng nếu void foo(char *c, size_t len)hợp pháp có một bộ đệm đầu vào / đầu ra và độ dài, và không có bất kỳ giá trị trả về nào, chỉ là một tác dụng phụ trên đối tượng mà nó có một con trỏ tới.
Peter Cordes

Chuỗi có thể trống?
cschultz2048

1
@ cschultz2048 nó nói rằng chuỗi sẽ chỉ chứa các ký tự ascii có thể in được, do đó ngụ ý rằng chúng sẽ luôn được điền. Tôi hy vọng rằng bất kỳ mã nào cho thử thách này sẽ để trống một chuỗi trống ... dù sao, tôi không nghĩ đó là trường hợp thử nghiệm mà tôi sử dụng cho việc này.
AJFaraday

Câu trả lời:


117

Malbolge , 20775 và 2334 byte

Có lẽ tôi đã không đánh bại bất cứ ai với nó, nhưng nó rất thú vị để thực hiện.

bP&A@?>=<;:9876543210/.-,+*)('&%$T"!~}|;]yxwvutslUSRQ.yx+i)J9edFb4`_^]\yxwRQ)(TSRQ]m!G0KJIyxFvDa%_@?"=<5:98765.-2+*/.-,+*)('&%$#"!~}|utyrqvutsrqjonmPkjihgfedc\DDYAA\>>Y;;V886L5322G//D,,G))>&&A##!7~5:{y7xvuu,10/.-,+*)('&%$#"yb}|{zyxwvutmVqSohmOOjihafeHcEa`YAA\[ZYRW:U7SLKP3NMLK-I,GFED&%%@?>=6;|9y70/4u210/o-n+k)"!gg$#"!x}`{zyxZvYtsrqSoRmlkjLhKfedcEaD_^]\>Z=XWVU7S6QPON0LKDI,GFEDCBA#?"=};438y6543s1r/o-&%*k('&%e#d!~}|^z]xwvuWsVqponPlOjihgIeHcba`B^A\[ZY;W:UTSR4PI2MLKJ,,AFE(&B;:?"~<}{zz165v3s+*/pn,mk)jh&ge#db~a_{^\xwvoXsrqpRnmfkjMKg`_GG\aDB^A?[><X;9U86R53ONM0KJC,+FEDC&A@?!!6||3876w4-tr*/.-&+*)('&%$e"!~}|utyxwvutWlkponmlOjchg`edGba`_XW\?ZYRQVOT7RQPINML/JIHAFEDC&A@?>!<;{98yw5.-ss*/pn,+lj(!~ff{"ca}`^z][wZXtWUqTRnQOkNLhgfIdcFaZ_^A\[Z<XW:U8SRQPOHML/JIHG*ED=%%:?>=~;:{876w43210/(-,+*)('h%$d"ca}|_z\rqYYnsVTpoRPledLLafIGcbE`BXW??TY<:V97S64P31M0.J-+G*(DCB%@?"=<;|98765.3210p.-n+$)i'h%${"!~}|{zyxwvuXVlkpSQmlOjLbafIGcbE`BXW??TY<:V97S64P31M0.J-+G*(D'%A@?"=<}:98y6543,1r/.o,+*)j'&%eez!~a|^tsx[YutWUqjinQOkjMhJ`_dGEaDB^A?[><X;9U86R53O20LKJ-HG*ED'BA@?>7~;:{y7x5.3210q.-n+*)jh&%$#"c~}`{z]rwvutWrkpohmPkjihafI^cba`_^A\[>YXW:UTS5QP3NM0KJ-HGF?D'BA:?>=~;:z8765v32s0/.-nl$#(ig%fd"ca}|_]yrqvYWsVTpSQmPNjMKgJHdGEa`_B]\?ZY<WVUTMR5PO20LK.IHA))>CB%#?87}}49zx6wu3tr0qo-nl*ki'hf$ec!~}`{^yxwvotsrUponQlkMihKIe^]EEZ_B@\?=Y<:V97S64P31M0.J-+GFE(C&A@?8=<;:{876w43s10qo-&%kk"'hf$ec!b`|_]y\ZvYWsVTpSQmlkNiLgf_dcba`C^]\?ZY;WV97SLK33HM0.J-+G*(D'%A$">!};|z8yw543t1r/(-,+*)(i&%fd"!~}|_t]xwvutslqTonmPNdchKIeHFbaD_AWV[><X;9U86R53ON1L.DCH+)EDC&;@#>=<;|98x6wu32s0p(',mk)(i&f|{"ca}`^z][wZXtWUqTRnmPNjcbJJ_dcbEDYB@@?ZSX;VUTS6QPO11F..CHGF)(C<A$?>=<}:98xx/uu,10/po,+$kiih%$#z!b}|{z]xwvXXmUUjonmPOjihafIdcbaD_^]??T<<QVUT76QPONG0..-HGFED=B%@?>=~|438yw5vt21r/o'&+lj(ig%fd"ca}`^z][wZXtWUqpoRQlkjihafIdcbaDBXW\?=YX;9UNMR53O20//DIH+)E>=B%#?"~<}{9zx6wu3tr0/pn,%$jj!&%$ed!~}|{zs\ZZYtsrqponglOjiLgfHdGEaDB^]@[=SRW:8T75Q42N1/K.,HG*E'=<A$"!!6;:{8x0/4us1rp.-,ml)('&%$#z!b}|{zy[qvutsUkTinmlejchKIIH]bE`_^A\[=Y<:VU86RKJO20LK.,HA@E(&BA$">76;|z8yw5vt2sq/pn,mkjj!&%$edy~a|{z][qpuXVUUjonQOkdchKIHH]baD_AWV[><;;PUT7R4JIN1/K.,H+)E(&B%#?"~<}{zz1654ut1*qoon+*#(i&%$e"!~``uzy\ZvonsVTSShmlOjLbafIGFF[`_B@\UTY<:99NSR53OHGL/-I,*F)'C&$@#!=~|:{y765vu21*/pnnm*)(!h%$#d!~}__tyx[vXnmrUSoRPlkNiKa`eHFbECBBW\[>Y;QPU86R53O20L/-I,*F)'&&;@?>!~;:92ywwv3210).o,+*k('g%fd"ca}`^z][wZXtsVqSihmPNjiLgI_^cFD`_B]?UTY<:VUT76QPONGL/--,GFEDC<%@?>!<;:98yw5.-2sq/.o,l$#(ig%fd"!b`|uty\ZYYnsrUpRhglOMiLJfIGcFD`CA]@>==RWVU87RQPONG0..-HGFEDC<A$?>!<;:zz1ww.321rq.-,+*)"'hffe"!~}|{zyrwZutsVqpoQQfkjMhJ`_dGEaDBAAV[Z=;WPOT75Q4211FKJ-+G@?D'%A$">!};|z8yw5vt210qp-,+*)('&}$e"!~}|^tyxwvXnWlqpohmfkNLLK`IdcbE`_^]\?=YRQV97S64P31ML/J,BAF)'CB%@"87<}{9zx6wu3tr0qo-nlkk"'&%fezcaa`{ty\wvuXsrTpSQmPNjiLJf_^cFD`_B@\UTY<:V97S64P31M0.J-+GFE('B;@#!!~;:3z765v321qq(-,m*j"!&ge#db~}`{]srwZXtWUTTinmPkMcbgJHdGEaDB^A?[><X;988MRQP32MLE.,,+FED=B%@?>!}549zxww.32sq/(',mk)(i&f|{"ca}`^z][wZXtWUqTRnQOkNLhgfIHcbaZ_B@@?ZYXWP9TSR5PON00EJI,*F?>C&$##8=<}:z216wu32s0p(',mk)jh&ge#db~a_{^\x[YuXVUUjonmPOjihg`IdcFa`BAAV[Z=;WPOT75Q42N1/K.,HGF)(CBA@?8=~;:9z76v43tr0)(-nl*)j'g}|#db~a_^^sxwZXtmlqTRnQOkNLhKIeHFbEC_^]@?ZYXWVUN7554ONMLKJIBG*EDC&$:9!!6;:9zy6543210/(o,+*)(h~%$#"bxav{tyxwpuXVVUjoRmlkNihJfIGcFD`CA]@>ZY<:VONS64PO2M/EDI,*F)'C&$@#!=~|:98yx/4u21r/.-mm$)(i&f|{"ca}`^z][wZXtWUqTRnQOkjMhJ`_dGEaDB^A?>>SXWV98SL5332MLEJ-HGF)DC%A@#>~65:{y76w4t,+0qo-,m*j"!&ge#"c~`vuz][wZXtWUqTRnQOkNLhgfIHcb[`C^]\[>YXW99N66KPON10KJIB+))(CBA@9>!<;:9z765uu,10q.n&%*ki'&g$dzy~a_{^\x[YuXVrUSoRPlOMiLJfIGFF[`_^A@[ZYXQV9TSRQ4ON0L/-,,AFE(C%;:?"~<;|z8105vtss*/.o,l$#(ig%fd"ca}`^z][wZXtWUTTinmlONihgfe^GEED_^]\[ZSX;VUT7RQP22GLK.I+A@E(&%%:?>!};438yw5vtss*/.om+$#(ig%$ec!xw|_]y\ZvYWsVTpSQmPNMMbgfeHGba`_^]V[>YX;VUTSR53OHGL/-,,AFE(C%;:?"~<;|9y105vt2sq/pn,mk)jh&ge#db~a_{zy\[vutsrqpiRmlkjiKafedcE[DY^]\UZSX;VUT7RQ322GLK.I+A@E(&BA$">76;|z8yw5vt2sq/pn,mk)jh&geddy~}|_^s\ZZYtmrUponQlkMihKIe^]bEC_^A\>TSX;988MRQ4O1GFK.,HG*E'=<A$">!};|z8yw5vt2sqpp',+*kj'~%f#"!b}|^z][wvYWslkpSQPPejiLJf_^cFD`_B]?UTY<:VU8S5KJO20L/-I,*F)'CB%#?87<;:{z76/vtts0/.',m*)(i&%$ddy~}`{]srwZXtWUqpSnPfejMKgJHGG\a`C^@VUZ=;W:8T75Q42N1/K.,++@EDC&%@?>7<}{{z7654-t10/p-,l*ki'&g$dzy~a_{^\x[YuXVrUSoRPlOMiLJII^cbaDC^]\[T=;;:UTSRQJO2MLK.IHGFE(&B;:?"~<}{98y6v.-2sq/pn,mk)jh&ge#db~a_{^\xwvYXsrqpohmPNNMhgfedc\E`_^A\[=YX;9UNMR53O20L/-I,*F)'C&$@#!=~|:{yxx/432sr/.-,+*#jhhg$#"!~}|uz]xwvYtsUqpSnPfejMKgJHdcFaCYX]@>Z=;WV9T6LKP31M0.J-+GF)D&<;@?>!~;:98765.3trrq.-,+*)('~g$#"c~}|{z][wpotWUqTRnQOkNLhgJeG]\aDB^]@[=SRW:8T75Q42N1/..CHGF)(CBA@?>=<5|98765u-210/o'n%*)(!&}$eccbw|_zyx[vuWsVTSShmlOMibafIGFF[`_B]?UTY<:V97S6433HML/-IBAF)'C&$@#!=~|:{y765vu,1r/.-nl$#(igff{"!b}_uty\ZYYnsrUSohglOMiLJfIGcFD`CA]@>Z=;W:877LQPO21LE.,,+FE>C&A@?"=<|{{276wu3,+0qonn%*)j'g}|#db~a_{^\x[YuXVrUSoRPlOMihgJIdc\aD_^]@[Z<XW:U7MLQ42N1/K.,H+)E(&B%#?"~<}{9zxww.321rq.-,%ljji&%$#z!b}|{^yxwYYnsrUSohglOMiLJfeHcE[Z_B@\?=Y<:V97S64P31M0.J-+**?DCB%$?>=<5:{876w432rr).-n+k#"'hf$#d!awv{^\xwZXtmlqTRnQOkNLhKIeHFbEC_B@\?=YXW:9TSRQPI200/JIHGFE>C&A@#!76||3876wv3210/.',m*)j'&%eez!~a_{tsx[YXXmrqTRngfkNLhgJeG]\aDB^A?[><;;PUTS65PONMLKJC,**)DCBA@?>=6;|987x54t21r/o'&+lj(ig%fd"ca``uzy\wYonsVTpSQmPNjMKgfIGc\[`_^A@[ZYXWVUTMR5PONML.DIHGF(>'<A@9>=6;|98y654tt+0/p-m%$)('hg|eccb}v{^yxwZutVrqToQgfkNLhgJeG]\aDBAAV[Z=X:POT7544INM0.JCBG*(D'%A$">!};|z8yw543ts0).o,+*)j'&%eezbbw|{z]\wvoXVVUponglOjihgJedcEEZ_^A?[TSX;9UT7R4JIN1/K.,H+)E(&B%#?"~<}{9zx6wutt+0/.on+*)"'h%$#"c~}|^^sxwZuWmlqTRnQOkjMhJ`_dGEaDB^A?[><X;9U86R53ON1L.DCHGF)(CBA@9"~~}:9876/4u210/p-,l*kihh}$#db~wv{^\[[putWUqjinQOkjMhJ`_dGEaDB^A?[><X;9U8655JONM0/JIHGF?D'BA@?"=<;{{2xx/432sr/.-,+*)(!h%$#"!aw|{zy[qZotsrkpinQOONchKfedcFa`B^A?[Z=X:POT7544INM0K-CBG*(D'%A$">!};|z8yw5vtss*/.-nm$)j'&%$e"!a}`^]]rwvYWslkpSQmPNjMKgJHdGEaDB^A?[ZY<;VO8665POHM0KJ-HGFED'%A:9>!}||387x5u-,1rp.-n+k#"'hf$ec!b`|_]y\ZvYWsVTpSQmlkNMhg`eHFFE`_^]V[>YXW:UTS55JON1L.DCH+)E(&BA$?!76;|z8yw54u2r*).om+lj('h%e{z!b`|{z]\wvutmrUponQOediLJII^cbEC_XW\?=Y<:V97S64P31M0.J-+G*(D'%$$9>=<}|98765.ussr/.-,+*#(i&%$e"!~``u]]rwvuXWrqponmfkNihKfeGcFD`CA]@>==RWV9T6LKP31M0.J-+G*(D'%A$">=<}|9876543,s0/p-,lkk"'&ge#zy~a_{^\x[YutWUqjinQONNchgfIHcba`_^]\UZ=XWVUT6LQPON0F/DIHG@E>C&A@#>=<||387x5u-,1rp.om+lj(ig%fd"ca}`^zy\wYonsVTpSQmPNMMbgfeHG\ECCB]V[>YXW:UT6R53O20//DIH+)E>=B%#?>!<|438yw5vt21rp.'&+lj(ig%fd"ca}`^zyx[ZunsVqpoRmlNjiLJf_^cFD`CA]@>Z=;WV9T6LKP31ML/J,BAF)'CB%@"87<}{zz1654ut10)pnnm*)(!&g$#"cawv{^\xwZuWmlqTRnQONNchgJeG]\aDB^]@[=SRW:8T75Q42N1/K.,H+)((=BA@#"=<;49z765v321qq(-,mk)"!&ge#"c~`vuz][wZXWWlqpSQmfejMKgfIGc\[`CA]@>Z=;W:8T75Q42NML/.IHGF?(&&%@?>=<5:{876w432rr).-n+k#"'hf$ec!~a|^tsx[YuXVUUjonQlNdchKIeHFbEC_B@\?=Y<:99NSRQ43NMLKJCH+))(CBA@?>7~;:9z76v43t1q)(-nl*ki'hf$ec!b`|_]y\ZvYWsVTSShmlkNMhgfedc\ECCB]\[ZYXWPU8SRQ4ONMLK.,HA@E(&BA$?!76;|z8yw5vt2sq/pn,mk)jh&ge#db~}|_^yxwvutslqTRRQlkjihgfe^Gba`C^]?[Z=;WPOT75Q42N1/K.,H+)E(&B%#?"~<}{zz1654ut10/.-,+*#j'&%$#cy~}|{]s\qvunsrkpSQQPejMhgfIdcEa`C^@VUZ=;WV9T6LKP31ML/J,BAF)'C&$@#!=~|:{y7xv4usrr).-,ml#(iggf#zc~}|_zy[wZXtsVTpihmPNjMKgfIdF\[`CA]\?Z<RQV97S64P31M0.--BGFE('B;$""!<;49z765v32r0qonn%*)jh&}|#dbaav{z]xZpotWUqTRnQONNchgJHd]\aDB^A?[><X;9U86RQP32MLEJ-++*EDC<%@?>!<;{9zx6wu3tr0qonn%*)j'g}|#db~}`{]srwZXtsVqSihmPNMMbgfIGc\[CCX]\[>=XWVO8665PONMFK.IHG*ED&B%#?>!<|438yw54u2r*).omll#('hf${z!b`|{^y[qpuXVrUSoRPlOMLLafedGFa`_^W\?ZYX;VU7SR5P2HGL/-I,*F)'C&$@#!=~|:{y7xv4usrr).-,ml)('&%|eccb}|{zyxqvYtsrUSihmPNjMKgfIdF\[`CA]@>Z=;WV9T6LKP31M0.J-+G*(''<A@?"!<;:98705v321rp(',mk)jh&%fd"yx}`^z][wZXtsVTpihmPNjMKgJHdGEaDBAAV[ZY<;VUTSRQPI200/JIHGFEDC<A$?>=~|438yw54u2r*).om+lj(igff{"!b`|uty\ZvYWsVTpSQmPNjMKgfeHGba`_^]\[TY<WVUTS5KPONM/E.CHGF?D=B%@?>!<;{9zx6wu32s0p(',mk)(i&f|{"ca``uzy\wYonsVTpSQPPejiLJf_^cFD`CA]@>Z=;W:8TSR54I200/JCH+FED'BA#?"~<}{98y6v.-2sq/pn,mk)(ig%|{"ca}`^z][wZXtsVqSihmPNMMbgfeHGb[`C^]\?ZY;WV97SLKP31M0.J-+G*(D'%A$">!};|z8ywvv-210qp-,%ljji&%${"c~}|_zy[wvYtVlkpSQmlOjLbafIGcbE`BXW\?=Y<:99NSR5P2HGL/-I,*F)'C&$##8=<;|{876/4u210q.-,ll#('hf${z!b`|{^\xqpuXVrUSonQlNdchKIedGEaZY^A?[><X;9U86R53O20//DIHG*)DCBA:#!!~;:98705v321r/.-mm$)(i&f|{"ca}`^zy\wYonsVTpoRmOediLJII^cbE`BXW\?=YX;V8NMR53O20L/-I,*F)'&&;@?>!~;:98705v321r/.n,mk)jh&ge#"ca}vuz][wZXtsVTpihmPNjMKgJHdGEa`C^@VUZ=;::OTSR54ONMLKJC,**)DCBA@?>7<}:98y65u3tr0qonn%*)j'g}|#db~a_{z]xZpotWUqTRnQOkNLhgJHd]\a`_BA\[ZYXWVOT7RQP3NM/KJ-H*@?D'%A$">!};|z8yw5vt2sq/pn,mkjj!&%$ed!~}|{zyxqZutsrqSinmlkMcLafed]b[`CAA@UZ=XWV9TS544INM0.JCBG*(DC&$@98=~|:{yxx/43tr0)(-nl*ki'hf$ec!b`|{^y[qputsVUjoRmlkNihJII^cbE`BXW\?=<<QVU8S5KJO20LK.I+A@E(&BA$?!76;|z87x5u-,1rp.om+ljii~%$#dc~w`^^]xwpuXsrqTonmOOdihKIe^]bEC_B@\[><XQPU86R5322GLK.,HA@E(&B%#?"~<}{9zx6wutt+0/.on+*#(i&%$e"!a}`^z][wZXtWUqTRnQOkNLhKIedcFE`_^W@>>=XWVUNS6QPO2ML.JI,G)?>&&;@?>!~;:9816w43tr*).omll#('h%e{z!b`|{^y[qpuXVrUSoRPlOMiLJfIGcFD`CA]\[>=XWVUTM6QP3NML..CHG*(D=<A$"!!6;:{y70/4us1rp.om+lj('&gf#"!~}|uz]xwZutVrqToQgfkNLhKIeHFbEC_B@\?=YX;V8NMR53O20L/-IHG*)DCBA@?>7~||{87654321*/p-,+l)('gg|#"ca}vuz][wZXWWlqpSnPfejMKgJHGG\a`C^@VUZ=;WV9T6LKP31MLK.-HGFEDCBA:?"=<;:9y16543s+r).',+*#(i&%$e"!~}|_]yrqvYWsVTSShmlOMibafIGFF[`_B@\UTY<:V97S64P31M0.J-+G*(''<A@?"!6}:9z76vuu,10qo-&%*ki'hf$ec!b`__tyx[vXnmrqpSRmfkNihgJedFbaD_AWV[><XW:U7MLQ4211FKJ-H*@?D'%A$">!};|z8yw5vt2sq/.-nm*)"iggf#"!x}`{z][qpuXVUUjonQlNdchKIedGbDZY^A?[><X;9U86R53O20L/-I,*FED'&A@?8=~;:{876vv-21rp.'&+ljii~%$ec!xw|_]yx[vXnmrUSoRPlOMLLafedGFa`_^W@>>=XWVUTMR5PO2ML.JI,G)?>C&$@#!=~|:{y7xv4us1rp.om+ljii~%$#dc~}|{zsx[YYXsrqpongPkjiLgfeGG\a`C^@VUZ=;W:8T75Q4211FKJ-H*@?D'%A$"!!6;:9zy654321*qoon+*)('&%|#d!~}`{zyxwZXtmlqTRnQONNchgJHd]\aDBAAV[Z=;WPOT75QP31MFEJ-+G*(D'%A$">!};|z876wv3210/.-&+l)(i&%eddy~}`^zsrwZXtWUqTRnQONNchgJeG]\a`_BA\[ZYXWVUN7RQPON0FKJIH*@)>CBA:?8=~||{27x543t10/oo&+*k(h~}$ec!~a|^tsx[YuXVUUjonQlNdchKIedGbDZY^A?[><X;9U86R53O20LKJ-,AF)DC&$:9>!}||387x5u-,1rp.-n+k#"'hf$ec!b`|_]y\ZvYWsVTpSQmlkNMhaJedGba`BBW\[><XQPU8655JON1/KDCH+)E(&B%#?"~<;:{z76/4u21r/.n,+l)i!~%fd"ca}`^z][wZXtWUqpSnPfejMKgJHdGEa`_BA\[ZS<::9TSRQJO2MLK.IH*F)'C&$@#!=~|:{y7xv43t1q)(-nl*ki'hf$#d!awv{^\x[YutsVUponmfkNihgJedFbaD_AWV[><;;PUT75QJIN1/..CHG*(D=<A$">=~|:327xv4us1rp.om+lj(ig%$#dc~}|{zs\wvYtsUTTinmPNjcbgJHdGEaDB^A?>>SXW:U7MLQPO21LKJIHG@E(CBA$"87}}4987xw43210/.'nllk('&%$#"!x}`{z][qpuXVUUjonQlNdchKIedGbDZY^A?[><X;9U86R53O20L/-I,*FED'&A@?>=<;:38y65432r*/.-,l$k"'&%|#z!b}|_zyxZZotsVTpihmPNMMbgfIGc\[`CA]\?Z<RQV97S64P3100EJIH+*?(&&%@9>!<;|98x65v3s+*/pn,mk)jh&ge#db~a_{^\x[YuXVUUjonmPOjchKIIHcb[D_^]@[Z<XW:8TMLQ42N1/KJ-H*@?D'%A@#>~65:{y7xv4us1rp.om+ljii~%$#dc~}v_]]\wvunsVqpSnmONNchgJHd]\aDB^]@[=SRW:8T75Q42N1/KJ-H*@?D'%A$">=~|:327xvuu,10/po,+*#(iggf#"!~}v{^yx[YonVVkponQPkjihg`eHFFE`_^]\[T=XWV9TS5Q42N1/K.,H+)ED'%A:9>!};|z87x5u-,1rp.om+lj(ig%$e"bxw|_]\\qvutWVqponmleNihKfeGcFDCCX]\?Z<RQV97S64PO20LEDI,*F)'C&$@#!=~|:{yxx/432sr/.-,+*)"'h%$#d!~`|{^y[qpuXVrqToQgfkNLhgJeG]\aDB^A?[><X;9U86R53O20//DIHG*)DCBA@?>=6}:9876v.3210p(o&+*#('~%fddcx}`{z]xwYutWrTjinQOkjMhJ`_dGEa`C^@VUZ=;W:8T75Q42N1/K.,H+)((=BA@#"7<}:9z765uu,10qo-&%*kihh}$#db~wv{^\xwZuWmlqTRnQOkNLKK`edcFE`YB@@?ZYRW:UTS6QP2NM0K-CBG*(DC&A#98=~|{{276wu3,+0qo-nl*ki'hf$ec!b`|_]yxwZYtslqTonQlkjLLafeHcE[Z_^]@?ZYXQ:887RQPOHM0KJI,GF(D'%A$">!};|z8yw54u2r*).om+lj(ig%fdccx}|_z\rqvYWVVkponQPkjihafIdcFDZY^A?>>SXW:U7MLQ42NM0K-CBG*(D'%A$">!};|z8yw5vt2sq/.-nm*)('&}f#"c~}|^^sxwZXtmlqTRQQfkjMKg`_dGEaDB^A?[><XWV98SRQPONGL/--,GFEDCBA:#>=<}:9y7xv4us1rp.om+*k(h~}$ec!b`|_]y\ZvuXVrkjonmPOjihgfed]Fa`C^]\>>SXW:U7MLQPO21LKJIHGFE>C&A@?>=}5:987w/v-210).',m*)(ig}|#db~a_{z][wpotWUqTRQQfkjMKg`_dGEaDB^A?[><X;9U86RQP32G0..-HAF)DC&A@"!!6;:{8x0/4us1rp.-n+k#"'hf$ec!b`|_]y\ZvuXsUkjoRPlOMLLafedGFaZ_B]\?ZYX::OTS64PIHM0.--BGF)'C<;@#!=<}:z216wu3tr0qonn%*)(ih%${dbba|{zsx[vutWrqSonQOkdchKIHH]baD_AWV[><X;988MRQ4O1GFK.,H+)E(&B%#?"~<}{zz1654ut10/(-n+*k('&ff{"!b}_utyxwZYtsrqjSQQPkjihg`eHcbaD_^@??TYX;V8NMR53ON1L.DCH+)E(&BA$?!76;|z87x5u-,1rp.om+lj(ig%$e"bxw|{z]\wvutslqTonmlOjihJJ_GG\a`_BA\[ZYXWVUN7RQPON0FKJIH*@)>CBA:?8=~||{27x5432s0/onn%*)jh&}|#db~}`{]srwZXtWUqTRnQOkNLhKIeHFbEC_B@??TYXW:9NS6QPON1LK-IH+F(>=B%#?"~<;|z8105vt2sq/pn,mk)jh&ge#db~}|_^yr[vutsVqpoQQfNNchgfIHcbaZCAA@[ZYXQV9TSRQ42HGL/-I,*))>CB%@"87<}{zz165v3s+*/pn,mk)jh&ge#db~a_{^\[[putsVUponmfkNihgfIdcEaDBAAV[Z=;WPOT75Q42N1/K.,H+)E(&B%#?>=~}:9876/vtts0/.-,+$)j'&ge{z!b`__tyx[vXnmrUSonQlNdchKIeHFbEC_B@\?=Y<:V97S64PON10KJIHGF?D'BA$?>=}}498yw5.-2sqpp',+lj(!~%fd"!b}_uty\ZvYWsVTSShmlkNMhgfedcb[D_^A\[Z<<Q99NSRQ43NMLKJIHG@E(CBA@?!7<;:9y1x/43,10).o,+l)('gg|ddy~}|_^s\ZZYtmrUponQlkjihKIe^]bEC_^A?[TSX;9U86RQ42NGFK.,H+)E(&B%#?"~<}{9zxww.321rq.',mkkj'&}fddc~}|uz]xwvYWmlTTinmlONihg`eHFFE`_^]V?ZYX;VU7S64PO2M/EDI,*F)'&&;@?"=}549zx6wu3tr0qo-nl*kihh}$#"cb}|{zs\wvYtsrTTinmPkMcbgfeHGba`_^W\?ZYX;VU766KPO2M/EDI,*))>CB%#?87<}{9zxww.32sq/(',mk)jh&ge#db~a_{^\xwvYXsrqpongPNNMhgfedcb[`C^]@>TSX;988MRQ4O1GFK.,HG*E'=<A$">!};|z8yw5vt2sq/pn,mk)('hg$#"!~}|uz]xwZutsUUjonQOkdchKIHH]baDB^WV[><XW:U7MLQ42N1/K.,++@EDC&%@?>=<;:92y65432r*/.-,l$k"'&%|#z!b``_ty\wvuXsrqSShmlOMibafIGcbEC_XW\?=YX;V8NMR53O20L/-I,*F)'C&$@#!=~|:98yx/4ussr/(o,+l)('g%$ed!xa__^yxqvYtsrUSihPPejihKJed]bE`_^A\[=Y<:V97SR5P2HGL/-IH+F(>=B%#?>!};438yw5vt2sq/pn,mkjj!&%$ed!~}v_zy\wvuWWlqpSnPfejihKJedcb[`C^]\?=SRW:8T7544INM0.JCBG*(DC&$@98=~|:{y76w4t,+0qo-nl*ki'hfeez!~}`_zyxwvoXVVUponmlkdiLgfeHcbD`_B@\UTY<:VU8S5KJO20L/-I,*F)'C&$@#!=~|:{y765vu210/.-&+l)(i&%$#"ca}vu]]rwvuXWrqponmleNLLKfedcba`_X]@[ZY<WV877LQP3N0FEJ-+G*(D'%A@#>~65:{y7xv43tr0)(-nl*ki'hf$ec!b`|{z]\wvutsrqpinQlkjihJ`edcbDZCX]\[TYRW:UT7RQP22GLK.I+A@EDC&%:#!!~;49z765v32r0/pn,%$)jh&ge#"ca}vuz][wZXtsVqSihmPNjMKgJHdGEDDY^]\?>YRW:UT75KJO20//DIH+F(>=B%#?>!<|438yw5vt2sq/pn,mk)jh&ge#db~}|_^yxqZutWrqpRRglkNLha`eHFEEZ_^A?[TSX;9U86R53O20LKJ-,GFE>C&A@?"=<;{{276wu3,+0qo-,mk)"!&ge#"c~`vuz][wZXtWUqTRnQOkNLhKIeHFba`CB]\[ZS<::9TSRQPIN1LKJ-+A@((=BA@#"=<;:981xvvu210/.-,%*k('&g$#cbbw|{^y[qpuXVrUSoRPlOMiLJfeHcE[Z_B@\[>Y;QPU86RQ4O1GFK.,HGF)(CBA@?>=6;|98y654tt+0/p-m%$)jh&ge#db~a_{^\x[YuXVrqToQgfkNLhKIeHFEEZ_^]@?ZYXWVUTSL5PONML.DIHGF(>'<;@?>=6;|zzy05v321rp(',mk)jh&%fd"yx}`^]]rwvYWslkpSQmPNMMbgfIdF\[`CA]@>Z=;W:8T75QPO21FK.IH+)?>C&$##8=<}:z216wu32s0p(',mk)jh&ge#db~a_{^\x[YuXVrqpSRmfOjiLgfeGG\a`CA]VUZ=;::OTS64PIHM0.J-+G*(D'%A@?"!<;49z765v321qq(-,mk)"!&ge#"ca}vuz][wvYtVlkpSQPPejiLgI_^cFD`CA]@>Z=;W:8T75Q42NML/.IHG@)''&A@?>7<}:98y65u32s0p(',mk)jh&ge#"c~`vuz][wvYWslkpSQmPNjMKgJHdGEDDY^]\?>YXWVOT7RQ4ONM//DIH+F(>=B%#?"~<}{9zx6wu3tr0qo-,m*j"!&ge#db~a_^^sxwvYXsrqpohQOONihgfed]bE`_^A\[=Y<:V97S64P31ML/J,BAF)'C&$@?"=}549zx6wu3tr0/p-m%$)jh&geddy~}|_^yxwvutmrUSSRmlkjihg`IdcbE`_A]@>ZY<:VONS64P31M0.JI,G)?>C&$@#!=~|:{y765vu210/.-,%ljji&%$#"!~}v{^yxwZXnmrUSRRglkNLha`eHFbEC_^A\>TSX;988MRQ42NGFK.,H+)E(&B%#?"~<;:{z76543210).o,+*)(h~%$#"bxav{zyrwpuXsrUponPPeMMbgfeHG\ECCB]V[>YXW:8NMR53O20//DIH+F(>=B%#?"~<}{98y6v.-2sq/.o,l$#(ig%$#dc~w|_zyx[vutsrUSohglOMLLafeHFb[Z_B@\?=YX;9UNMR5322GLK.,HA@E(&B%#?"~<}{9zx6wu321rq.-&m*)jh&%$#"cb}|{ty\wvuXVlkSShmlkNMhgfe^GEED_^]\[TY<WV9TSRQP31MFEJ-+**?DC&A#98=~|:9z7w/.3tr0qo-nl*ki'hf$ec!b`|_]yxwZYtsrqpinQOONihgfed]Fa`CAW\[ZY<;VUTSRQJ3110KJIHGFE>C&A@#!76||3876wv3210/.-&+l)('h%$#ccx}|_]yrqvYWsVTpoRmOediLJII^cbE`BXW\?=Y<:99NSR53OHGL/-I,*F)'C&$@#!~~5:98yx543210/.'n+*)('g}$#"!aw`uzyxqvotWrqTonPOOdihKIe^]bEC_B@\?=Y<:V97S64P31M0.J-+GFE('<A$?>=~;:9yy054u2r*).om+ljii~%$ec!xw|_]\\qvuXVrkjoRPOOdihKfH^]bEC_^A\>TSX;9U86R53O20//DIHG*)D=&$$#>=6;|98y65u32s0p(',mk)jh&ge#db~a_{^\x[YuXVrUSRRglkjMLgf_dGbaD_^]??TYX;9UNMR5322GLK.,HA@E(&BA$?!76;|z8yw5vtss*/.-nm*)(!hffe"!~}v{^yxwZutsUUjonQOkdchKIedGEaZY^A?[Z=X:POT75Q42N1/K.,H+)E(&B%#?"~<;:{z7654-2s0/pn,+*)(ih%$#"!xa__^yxwvutmrUponQOedLLafedGFa`_^]\UZ=XWV9TS5Q42NM0.JCBG*(DC&A#98=~|{{276w4t,+0qo-nl*ki'hf$ec!b`|_]yxwZYtsrqpongPkjMhgfHH]baD_AWV[ZY<;VUTSRQPOHM0KJIHG)?DCBA#9"7<;49816w432s0/.nn%*)j'g}|#db~a_{z][wpotWUTTinmPNjcbgJHdGEaDB^A?[><X;988MRQP32G0..-HAF)DC&$:9>!}||387x5u-,1rp.-n+k#"'hf$ec!b`|_]y\ZvYWsVTpSQmlkNMhafIdcFa`_AAV[Z=;WPOT7544INM0.JCBG*(DC&A#98=~|:{y7xvuu,10/po,+$kiih%$#z!b}|{^yxwYYnsrUSohglOMihKIe^]bEC_^A\>TSX;9U86R53O20L/-I,*F)'C&$@?>!~;:927x54us10/.-nm*)('~geed!~}|{ty\wvuXVlkSShmlkNMhgfed]bE`_B]\>ZY<W9ONS64PO2M/EDI,*F)'C&$@#!=~|:{y7xv4us10/po,+*)('~geed!~}|{zyrwZutWUkponmPOjihgfed]bE`_B@VU==RWVU87RQPONMLKD-HGFED&<A@?>~6}498705.3trrq(-n+*)j'&feez!~a|^tsx[YuXVUUjonQlNdchKIedGbDZY^A?[Z=X:POT75Q42N1/K.,HGF)(=B%@?"=<;{{276wu3,+0qonn%*)jh&}|#db~}`{]srwZXtWUqTRnmPkMcbgfeHGb[DBBA\[TY<WVU86LKP31ML/-IBAF)'CB%#?87<}{zz165vt2+*/pn,mk)jh&ge#db~a_^^sxwvYXsrkpSnmPNdchKIHH]baD_AWV[><XW:U7MLQ42N1/K.,H+)E(&B%#?"~<}{987xw432+r/.o,+*jj!&%fd"yx}`^]]rwvYWslkpSQmPNjMKgJHdcbED_^]\UZ=XWV9TSR44INM0.JCBG*(DC&$@98=~|:9z7w/.3tr0qo-nl*ki'hf$ec!b`|_]yxwZYtsrqpiRPPOjihgfe^cFa`_B@VU==RWVU87RQPONMLE.,,+FEDCBA@?8=~;:{87w5vt2sq/pn,mk)jh&%f#cyx}`^z][wZXtWUqTRnQOkNLhKIeHFEEZ_^]@?ZYXWVUTSLQ4ONMLK-CHGFE'=&;@?>7<5:{8765v32r0/p-m%$)jh&ge#"c~`vuz][wvuXWlUSSRmfkNihKI_^FF[`_^A@[TY<WVU8SR4P31M0.J-+GF)D&<;@#!=<}:z216wu3tr0qo-nl*)(ih%${d!~a|{]\\qvuXVrkjoRPlOMiLJfIGcFD`CA]@>Z=;W:8TSR54ONMFK.IHG*ED&BA$?!76;|z8ywvv-21rp.'&+lj(ig%$e"bxw|_]y\ZvYWsVTpSQmlkNMhgfe^GEED_^]\[TY<WV9TS5QP3N0FEJ-+G*(D'%A$">!};|z8yw5vt2sqpp',+*kj'&%$#z!b}|_zyxZZotsVTpihmPNMMbgfIGc\[`CA]\?Z<RQV97S64P3100EJIH+*EDCBA@9"=<}:98xx/43t1q)(-,+lk('&%$#"y~a|{z][qpuXVUUjonQOkdchKIeHFbEC_B@\?=Y<:V97S64P3100EJIH+*EDCBA@?>7~;:987w/4321q)p',+$)(!&g$#"!b}|^z][wvYWslkpSQmPNjMKgJHdGEaDB^A?>>SXWV98SRQJ3110KJIHAF)DCBA$?>=<;|z8105vt2sqpp',+lj(!~%fdccx}|_z\rqvYWsVTpSQmPNjMKgJHdGEDDY^]\?>YXWVOT7RQPO2ML.JI,G)?>C&$@#!=<}{9216wu3tr0qo-nl*ki'hf$ec!~}`_zyxwvoXsrqpSnmlNNcKK`edcFE`_^]\[ZS<::9TSRQPONMFK.IHGF)'=<A$">!}||387x5u-,1rpoo&+*k(h~}$ec!b`|_]y\ZvYWsVTpSQPPejihKJedcba`_^W\?ZYXWV8NSRQP2H1FKJIBG@E(CBA@#>=};|zyy054us1*).om+lj(ig%fd"ca}`^z][wvuXWlUpoRmlkjiLJf_^FF[`_^A@[TY<WVU8SRQPO20LEDI,*F)'CB%@"87<}{9zx6wu3tr0qo-nl*ki'hf$#"cb}|u^\\[vutmrUpoRmlkMihKJedc\aD_^]@>TS;;PUTS65PONMF/--,GFEDC<A$?>=~;:z8yw5vt21r/o'&+lj('h%e{z!b`|{^\xqpuXVrUSoRPlOMiLJII^cbaDC^]\[ZSX;VU8SRQ33HML/J,BAFED'&A@?>=<5|zzy6543210).o,+*k('g%fd"!b}_uty\ZvuXsUkjoRPlOMiLJfeHcE[Z_B@\?=Y<:V97S6433HMLK.-HGFEDCB;@#>=~|438ywvv-21r/o'&+lj('h%e{z!b`|_]y\ZvYWsVTpSQmPNjMKgfeHGba`_^]\[T=XWVUT6LQPON0F/DIHG@E>C&A@#>=<||387xv4-,1rpoo&+*ki'~}$ec!b`|_]y\ZvutWVkpSnmlOjiKJJ_dcFD`YX]@>Z=;WV97SLKP31M0.J-+G*(D'%A$">!}||3876wv3,sqqp-,%*k('h%$#c!~a`{zsx[vutWUkjRRglkjMLgfe^GEED_^]\UZ=XWV9TS544INM0K-CBG*(D'%A$">=~;{327xv4us10qo-&%*ki'hf$ec!b`|_]yxwZYtsrqjoRmlOjihJJ_dcFaCYX]@>Z=;W:8T75Q42N1/K.,HG*E'=<A$">!};|zyy0543ts0/.-,%ljji&%$#"!x}`{zy\wvXtWUqTRnmPkMcbgJHdcFaCYX]@>ZY<W9ONS64P31M0.JI,*F?>CBA$#>=<;:927x54us+*/pnmm$)(i&f|{"ca}|_z\rqvYWsVTpSQmPNjMKgJHdGEaDB^]\?>YXWVUTSL5PO2MLK--BGF)'C<;@#!~~5:9zx6/.3tr0qo-nl*ki'&%fe"!~}|{zyrwZutsrqSinmlkMcLaf_dcb[`C^]@[Z<X;9U86RQ42NGFK.,++@ED'B$:9>!};|z8yw5vt21r/o'&+lj(igff{"!~a`u^yx[YonVVkponQPkjcLJJIdcb[`C^]@[ZY;;PUT75QJINML/.IHG@E(&&%@?>=<5:{87xv.-ss*/.-nm*)('&}$e"!b}|{]]rwvYWslkpSQmPNjiLgI_^cFD`_B]?UTY<:VU86RKJO20LK.I+A@EDC&%@?>=<;4{yyx543210/(-n+*)j'&f$ec!~a|^tsx[YuXVrqToQgfkNLhgJeG]\aDB^A?[><X;988MRQP32MLKJIHG@E(CB%#?>=<;|3z765432+0q.-,m*)i'hf$ecbbw|{^\xqpuXVrqTRngfkNLhgJeG]\aDB^A?[><X;988MRQ42NGFKJI,AF)DCBA$?>=}}4zz1654ut+rppo,%*k('&%f#"baav{z][wpotWUqpSnPfejMKgJHdGEaDB^A?[><X;9U86R5322GLKJ-,G@E(CBA@#>=};:{8x0/4us1rp.-nl*#"'hf$ec!b`|_]y\ZvYWsVTponQPkjcLgfedGba`BBW??TYXW:9TSRQJ3110KJIHG@E(CBA@#!76;|z8ywvv-21r/o'&+ljii~%$e"bxw|_]y\ZvYWsVTpSQmPNjMKJJ_dcbED_^]\[TY<WVUT7RQ3O20//DIH+)E>=B%#?"~<}{9zx6wu3tr0qo-,+lk('&%$#zc~}`^zyxwvYnWrqponmfkNihgJedcEEZ_^A\>TSX;9UT7R4JIN1/KJ-H*@?D'%A@#>~65:{y76w4t,+0qonn%*)j'g}|ddy~}|_ty\wvutWrqpRRgOOdihgJI^GEED_X]@[ZYX;VU766KPO20LEDI,*FE(C%;:?"~<}{9zx6wu3tr0qo-nl*ki'hfeez!~}`_zsx[vutsVqpRnmPkMcbgJHdGEa`CA]VUZ=;W:8T75Q42N1/K.,H+)EDC&%@?8!<;:9z765uu,rr).-,ml)('&}fddc~}|{zsx[vutsVTjinQOkNLKK`edGbDZY^A?>>SXW:U7MLQ42N1/K.,H+)E(&B%#?"~}}4987xw43210).o,+*)j'&f$ecbbw|{^\xqpuXVrUSoRPlOMiLJfIGcFD`_^A@[ZYXWVO8SR53ONMLK.C,GFEDCB;@#>=<}:9y7xv43t1q)(-nlkk"'&ge#zy~a_{^\xwZXtmlqTRnQOkNLhKIeHFbEC_^]@UZ=XWVU8SRQ33H00EJIH+*?(&&%@9>!<;:9z76vuu,10qo-&%*ki'&g$dzy~a_{^\x[YuXVrUSoRPlOMiLJfIGFF[`_^A@[TY<WVUT7RQ3ON1L.DCH+)E(&BA$">76;|z8yw5vt2sq/pn,mk)jh&%$ed!~w`{zyx[vutVVkSShmlkNMhgfe^GEED_^]\[TY<WVUT75KJO20L/-,,AFE(C%;:?"~}}498y6v.-2sq/pn,mk)jh&ge#db~a_^^sxwvYXsrqpohmPkjihKfeGcFDCCX]\?=YRQV97S64P31M0.J-+G*(D'%A@?"!<;:9870w43tr0/.-,m$k('&%$#z!b}|{^yxZYYnsrUSohglOMLLafeHcE[Z_B@\?=Y<:V97S64P31M0.J-+GF)D&<;@#!~~5:98y05v3210q.-,ll#ii~%$#dcxa__^yrwZutsrUpoQPPejiLJf_^cFD`_B]?UTY<:V97S64P31M0.J-+G*(D'%A$"!!6;:9zy6/4u210/p-,l*)j'g}|#db~a_{z][wpotWUqTRnQOkNLhKIeHFbEC_^]@?ZYR;VU86RQPON1F/JIHGFE>C&$@#>7<;:9z16w4321r/.n,+l)i!~%fd"ca``uzy\wYonsVTpSQmPNjMKgJHdGEaDBAAV[ZY<;P977LQ4221FK.IHGFE(CBA##8~~5:98yx/4u210qo-,+*)j!h%$#"!~w|_zyx[YonsVTpSQmPNMMbgfIdF\[`CA]@>Z=;W:8TS6Q3IHMLK.C,GFEDCB%^#K=[}GziUUfSt,ON)ooK%kH5XgCBdSRQ=v_^9'[%Y#FlUTR.-P>j<htIHH]o4`l1A?>Zwv*:8TSq5]3!kk/DgHTwd'b%;^L\[Z|49i1Tv4u2rr)(nKl76jE~%BdSbQ`Ouz\[8ZuWs3UC0Rm->jvKt`HG#EE`B1@/z==vutOT&Ro]O[MYKJVyf*c(b%%ML]=Z;X3i1xTRRt+*pp-,%[jYhD%CAARa}+_MLr&Y$5V3DToAmPej*;a`e$]#[Z_B{@[-fwv)UT&qKPmllj/hhBx)(>C&_M^]7Z}Xz8yTf.@Qba/;^,lkk"!WC1BS@-`_uMyK7I5XVV200{mfNj*uK&HHpb[D}B@zy=,+QV9Tr6p]"Nk0|{VBeSRcPa$_9Kn};{zEhgT4u,>*);'nJIkiEW210SRQ=<*;(K&I$tslk}BA@?eMv;(JI$F""mB^|i>>=vW)9'7%$#2NlYX-,HA@)''%%_?8[~;{zzVCT.d,s*N_n,mk6"FDCCTA?>P+{z(xq655s22}S/gfkjLL:fIH#EE!YAjVzgYX:)(s65p]m[MY/hCB+)RcPa$#""=<|43ixwS4Q2P*`p'KJHZ(!WVBec!-P=*ML9J6$GF3q10A-O>=c;(J%HGF!~_^0?.-w+QcUs`p4JmH1//{gyxeRQ

Hãy thử trực tuyến!

Nếu thử thách không yêu cầu tạm dừng tại một số điểm (ví dụ: eof), nó sẽ trở nên tầm thường, đạt 2334 byte :

bP&A@?>=<;:9876543210/.-,+*)('&%$T"!~}|;]yxwvutslUSRQ.yx+i)J9edFb4`_^]\yxwRQ)(TSRQ]m!G0KJIyxFvDa%_@?"=<5:98765.-2+*/.-,+*)('&%$#"!~}|utyrqvutsrqjonmPkjihgfedc\DDYAA\>>Y;;V886L5322G//D,,G))>&&A##!7~5:{y7xvuu,10/.-,+*)('&%$#"yb}|{zyxwvutmVqSohmOOjihafeHcEa`YAA\[ZYRW:U7SLKP3NMLK-I,GFED&%%@?>=6;|9y70/4u210/o-n+k)"!gg$#"!x}`{zyxZvYtsrqSoRmlkjLhKfedcEaD_^]\>Z=XWVU7S6QPON0LKDI,GFEDCBA#?"=};438y6543s1r/o-&%*k('&%e#d!~}|^z]xwvuWsVqponPlOjihgIeHcba`B^A\[ZY;W:UTSR4PI2MLKJ,,AFE(&B;:?"~<}{zz165v3s+*/pn,mk)jh&ge#db~a_{^\xwvoXsrqpRnmfkjMKg`_GG\aDB^A?[><X;9U86R53ONM0KJC,+FEDC&A@?!!6||3876w4-tr*/.-&+*)('&%$e"!~}|utyxwvutWlkponmlOjchg`edGba`_XW\?ZYRQVOT7RQPINML/JIHAFEDC&A@?>!<;{98yw5.-ss*/pn,+lj(!~ff{"ca}`^z][wZXtWUqTRnQOkNLhgfIdcFaZ_^A\[Z<XW:U8SRQPOHML/JIHG*ED=%%:?>=~;:{876w43210/(-,+*)('h%$d"ca}|_z\rqYYnsVTpoRPledLLafIGcbE`BXW??TY<:V97S64P31M0.J-+G*(DCB%@?"=<;|98765.3210p.-n+$)i'h%${"!~}|{zyxwvuXVlkpSQmlOjLbafIGcbE`BXW??TY<:V97S64P31M0.J-+G*(D'%A@?"=<}:98y6543,1r/.o,+*)j'&%eez!~a|^tsx[YutWUqjinQOkjMhJ`_dGEaDB^A?[><X;9U86R53O20LKJ-HG*ED'BA@?>7~;:{y7x5.3210q.-n+*)jh&%$#"c~}`{z]rwvutWrkpohmPkjihafI^cba`_^A\[>YXW:UTS5QP3NM0KJ-HGF?D'BA:?>=~;:z8765v32s0/.-nl$#(ig%fd"ca}|_]yrqvYWsVTpSQmPNjMKgJHdGEa`_B]\?ZY<WVUTMR5PO20LK.IHA))>CB%#?87}}49zx6wu3tr0qo-nl*ki'hf$ec!~}`{^yxwvotsrUponQlkMihKIe^]EEZ_B@\?=Y<:V97S64P31M0.J-+GFE(C&A@?8=<;:{876w43s10qo-&%kk"'hf$ec!b`|_]y\ZvYWsVTpSQmlkNiLgf_dcba`C^]\?ZY;WV97SLK33HM0.J-+G*(D'%A$">!};|z8yw543t1r/(-,+*)(i&%fd"!~}|_t]xwvutslqTonmPkjLhKIeHFbEC_^A?[TSX;9UT7R4JIN1/K.,H+)E(&B%#?"~<}{987x/4u21rp(',mk)jh&%fd"yx}`^z][wZXtWUTTinmPkMcbgJHGG\a`C^@VUZ=;::OTS6Q3IHMLK.-B+FE(CBA##8~~5:98yx5.3t10q.-,+*ki'~}eez!~}`_zyxqvYtsVqpoQQfkjMhJ`_dGEaDBAAV[Z=;WPOT7544INM0K-CBG*(D'%A$">!};|z8yw5vt210qp-,+*#j'&g$#"!~a_{ts[[putsVUponmlkdMhgJedcEEZ_^A\>TSXWV98SRQPONMFK.IHGFE'=BA@?!7~5:9816/4u21r/.-,+lj(!~ff{"!~a`uz]xwvYtsUqTRnQONNchgJHd]\aDBAAV[Z=;WPOT7544INM0.JCBG*(''<A@#!=65:{yxx/43tr0)(-nlkk"'&ge#zy~}|_ty\wvYWmlqTRnmPkMcbgJHdcFaCYX]@>==RWV97SLKP31M0.J-+G*(D'%A$">!}||3876wv-t10/p-,l*)(i~%fddcx}`{zy\wvXtWUqTRnQOkjMhJ`_dGEDDY^]@[=SRW:877LQP3N0FEJ-+**?DC&A#98=~|{{276w4t,+0qonn%*)j'g}|#db~a_^^sxwvYXmrUponQlkMiLJfIGFF[`_B@\UTY<:99NSR53OHGL/-,,AFE(&B;:?"~}}498yw5.-2sq/.-n%l)('&%$e@b>,+^^:87Z5n"!10/QP-kMv(gf%Gc543}|0{[-YXu)t87L5]Ol~jjiz++evbaa`M^!=Z|kWWD05S3?O*)o'JJH)F!~f1TAy>,<^]:xJ6YXmlD0SAQPk+vKaJ%%F5ECCX|zz=xRQ

Hãy thử trực tuyến!

Giải trình

Tôi đã được yêu cầu giải thích cách thức hoạt động của chương trình. Tôi sẽ chọn cái thứ hai vì nó dễ giải thích hơn cái thứ nhất, nhưng cách cả hai công việc này thực sự giống nhau.

Hãy bắt đầu mọi thứ với việc giải mã mã. Khi một số người bình luận đã làm điều đó trước khi tôi bắt đầu giải thích, vì vậy tôi thực sự khuyên bạn nên kiểm tra nó.

Nó không làm cho việc đọc chương trình trở nên dễ dàng hơn bất kỳ ai sẽ nói, nhưng trước khi chúng ta đi thẳng vào mã, hãy xem lại những điều cơ bản về Malbolge.

Các máy ảo được dựa trên trits ( tri nary chữ số s ). Mỗi từ máy rộng mười trits, làm cho nó nằm trong khoảng từ 0 đến 2222222222t (= 59048d). Mỗi vị trí bộ nhớ giữ một từ máy; Các địa chỉ là một máy rộng từ quá. Cả dữ liệu và mã chia sẻ cùng một không gian bộ nhớ.

Có ba thanh ghi, mỗi thanh ghi chứa một từ máy, ban đầu là 0: thanh ghi mã C là một con trỏ tới lệnh sắp được thực thi, thanh ghi dữ liệu D được sử dụng để thao tác dữ liệu và bộ tích lũy A cũng được sử dụng bởi một số hướng dẫn thao tác dữ liệu.

Nếu lệnh thực thi không nằm trong phạm vi 33-126, thì việc thực thi dừng lại (trình thông dịch tham chiếu bị treo trong trường hợp này do lỗi). Mặt khác, để xác định lệnh thực tế để thực thi, giá trị được chỉ ra bởi thanh ghi C được thêm vào chính thanh ghi C và kết quả chia cho 94, lấy phần còn lại.

Dưới đây là bảng của tất cả các hướng dẫn có thể.Cái bàn

Bây giờ khi mã dễ hiểu hơn và thực sự có thể nói những gì đang xảy ra ở đó, chúng ta có thể chuyển sang ý tưởng chung về những gì đang xảy ra ở đó.

Không có bất kỳ bước nhảy nào, lập trình Malbolge khá tầm thường. Khi các bước nhảy được sử dụng, có nhiệm vụ giải mã cần được thực hiện trước khi thực hiện lại mã này. Mỗi khi một lệnh được thực thi, nó sẽ được xử lý ngay sau khi được mã hóa, vì vậy nó không hoạt động theo cách này trước đây.

Để minh họa cách giải quyết, chúng ta hãy xem chương trình mèo Malbolge được chuẩn hóa:

jpoo*pjoooop*ojoopoo*ojoooooppjoivvv
o/i<iviv
i<vvvvvvvvvvvvv
oji

Vì vậy, như bạn có thể thấy, trên dòng thứ hai chúng tôi có /<hướng dẫn xử lý các công cụ I / O. Bằng cách sử dụng thực tế rằng Cthanh ghi là con trỏ lệnh, chúng ta có thể sửa đổi nó bằng cách sử dụng ilệnh tạo hiệu quả một nhánh. Trước khi chi nhánh xảy ra, chúng ta cần giải mã các hướng dẫn chỉ cần một vài chu kỳ đọc và ghi đầu ra đến và từ TTY, kết hợp với một bước nhảy. Vì không có cách nào thực sự để lưu trữ các hằng số một cách hiệu quả, chúng ta cần nhúng nhiều hướng dẫn không liên quan và sử dụng giá trị của chúng để tính các hằng số khác cần thiết (sử dụng thực tế là Malbolge không tách rời chương trình và dữ liệu)

Lưu ý: Các phần của câu trả lời này được lấy từ trang Malbolge của Esolang được cấp phép theo liên kết Muff - .

Có thể, bạn có thể muốn kiểm tra câu trả lời khác của tôi có tính năng Seed


15
Ái chà! Bạn đã làm cái này thế này? Làm thế nào để bạn lập trình trong Malbolge? (đây là những câu hỏi nghiêm túc)
MilkyWay90

39
Ngày mà ai đó viết, ở Malbolge, một chương trình chỉ đơn giản là sao chép đầu vào của nó thành đầu ra của nó, là ngày tóc tôi tự nhiên chuyển sang màu xanh lá cây. Đó là ngày mà voi có màu tím và lạc đà bay, và một con bò có thể vừa với mắt của một cây kim. Điều này dường như vượt qua điều đó.
Adám

20
@ Adám, ít nhất là 2 lần.
Xù xì

12
Lần đầu tiên nghe về Malbolge, nhưng đọc tất cả những tài liệu tôi có thể nghĩ là: dang, đây là một câu trả lời ấn tượng. Có thể giải thích mã của bạn, hoặc là ngoài việc giải thích? ;)
Kevin Cruijssen

24
+1 cho "nó trở nên tầm thường"
Arnauld

88

Brainfuck , 6 byte

,[..,]

Hãy thử trực tuyến!

Đối với một lần, một câu trả lời thực sự cạnh tranh trong brainfuck. :-) Nó chỉ đọc từ đầu vào tiêu chuẩn ( ,), sau đó lặp trong khi ký tự đọc không bằng 0 ( [), viết ký tự đọc hai lần ( ..) và cuối cùng đọc một ký tự mới ( ,) trước khi quay lại bắt đầu vòng lặp ( ]).

Câu trả lời 6 byte thay thế:

+[,..]

Hãy thử trực tuyến!


10
Nó đã xảy ra đôi khi.
AJFaraday

14
đưa ra 8 hướng dẫn của brainfuck, có thể được lập luận là 2,25 byte?
speedstyle

43

Hạt giống , 6013 3942 3884 3865 3848 byte

6 2686150228553910251590139707025615036563204497823963635717768129239771871066022173506550480510882628259267028226290577985584582829987099606110915656117177113555095646841841520224800333754793732176561479800611856258812006670385981709167679328497862503284773114717364645850756926464567857029605682209030697372493435852024478962025612141035167904456425050991742516020282696732660004824569723936406080643638019715421991278634074220365586727498681650073989748857985341022350116695714407041551609933358182688736747622670056818175549484918971558384479903673900409406866275258032866680967195428439907751537922194839977711106739550525066186108781580088916582559490041917035011328862266125578018990106393872489460844458091217404944194309597162769266585917996079831048944050703695352212652362891425728346891039020051565145149143668695374506752075410956647268061596926723805877631732070244839345640289062870487268706837056753112890753688530410829624567367052492603150395779619674714389456447573342335882718419424356991739625084740814435581409670174841935167450868967735568432921607395284483532735870628809137816139721467391760314297120583388009684979379888771619327969950939260709632318979448755571394507744993723267176377451465261335636767345281382139780890626858048062851714445255458413414708836044457819560626602471881203745677166851290194466534044374122781840150694963232713079984019097616802988558052961445185981197848860688635007868494303883280609553158126926303057368716954797175868772233997584782178460308584468311133667562020523260687787209651365697360075036255149184531675013585317549831215044187699501112214237282761452176427542227751840469500783022037518267131004723958694850409020207947539046371030202918430731468837057173037358435898981729128093138565524861044307737736772778645659866179416374742499528142506977571896833797572787168504674372995624869224644028121889021513694674680344413147327217671463636201883832593707987630471763158950694907193475270346642656464131212900528377257996057522592531063490286796434946290829640562975054259249630102041301990094261151488784971084438450904697283402436878185751193256803412549504172175692725366543545573099651580644132336272302990268431569623087644930350666119986012078396755208814027614451748455718916151950218835893255721018309717807161101069849247670957963270760531996609510342178009605381013854568528344071028665101709824510991652144229895556116304356971449229862349660751509158124118556805449346752918775201366378708970673708268140336609704879631200464020207189960217784283188350457711700181561855735903701439931161728546207607766764248018356183768557244013532032616392458312600465372655052565572757979232509950076857757257164261786986456779565081319671440867797151240096925123970490604003172676471092543424462070540303172987644037832692737644573481399927217285232015082118420498058022229538934735831710860610342762500071914715742707928060606416262583307855509796730058097681208691054336064995992598081644175617375019325706441005506100489323794725547244923204524790583484243672718647866979116309868261348266944902049457094368284266044502218232850494065571536043568039093446786891928597439310947971461490128765873399872574753055564655381318395939745692438909430171644009177696549501234738931977436030245682360974103741227416811200635596942701451202333113537361407624672328798572271366897755165037017879673502748767425083758652376018772700583221474572236166246539494675416322678094399996691972837962509574037110004298629947088012862552029152119412750923308070223808629424081676003170951500587426197322368913565250353332410276730344732325753114510178069340400741671217608323179698501977213623893949006870978691284571486316780769512681865771113879654002525802085758553029765815927252866913455193686303619992165147682671351400793392238437682055370542229871989802092530537034276944154276536658348210

Hãy thử trực tuyến!


1
Tôi đã đạt đến giới hạn phiếu bầu hàng ngày của mình, nhưng tôi sẽ nâng cấp điều này trong 2 giờ
MilkyWay90

4
Tôi không thể bắt đầu hiểu điều này
AJFaraday

7
Bất kỳ cơ hội bạn có thể giải thích làm thế nào bạn có cái này? Một mô tả như vậy sẽ bao gồm từ 'tầm thường' tại bất kỳ điểm nào?
ngerak

1
@urdyak, lần này, nó sẽ không bao gồm từ 'tầm thường', bởi vì thách thức cần phải đảo ngược Mersenne Twister
Krzysztof Szewchot

6
Làm thế nào bạn đảo ngược Mersenne Twister?
MilkyWay90

31

Thạch , 1 byte

Chương trình đầy đủ.

ż

Hãy thử trực tuyến!


Ồ, tôi đã quá chậm. Vừa mới đăng bài
Adám

FWIW Tôi lưu ý rằng đây là một chương trình đầy đủ vì là một Liên kết đơn, nó chấp nhận một danh sách các ký tự nhưng trả về một danh sách các danh sách các ký tự - vì vậy, nó chấp nhận một chuỗi Python làm đối số và in kết quả (cũng như 1 của tôi , mặc dù cái này có thể được tăng cường để hoạt động như một Liên kết ( ż`F), trong khi tôi không thể tin được)
Jonathan Allan

(Nick Kennedy chỉ ra rằng tôi có thể trở thành một Liên kết với uneval, eval :))
Jonathan Allan

1
@Jonathan ALLan Pfffft, uneval-eval :)))
Ông Xcoder

3
@Jakuje Jelly có bảng mã riêng , do đó, mỗi 256 ký tự mà nó chứa được mã hóa thành 1 byte.
Ông Xcoder


22

Haskell , 15 14 13 byte

(>>=(<$"dd"))

Hãy thử trực tuyến!

hoặc rõ ràng:

\xs -> concatMap (\x -> map (const x) ['d','d']) xs

Giải thích: Danh sách là một Monadtrong Haskell và sử dụng toán tử liên kết >>=là một concatMap, thực thi một hàm lấy một phần tử và trả về một danh sách trên mỗi phần tử của danh sách và sau đó ghép các danh sách kết quả vào một danh sách lớn.

Bây giờ chúng ta chỉ cần phải xây dựng một hàm, được đưa ra một giá trị, trả về một danh sách các giá trị mà hai lần, được thực hiện bằng cách (<$"dd"), có thể được đọc là "Đi danh sách ['d','d']và thay thế tất cả các phần tử với các đối số của hàm này. Các "dd"thể bất kỳ biểu thức nào dẫn đến một danh sách chính xác hai yếu tố, nhưng đây là lần ngắn nhất tôi có thể đưa ra.


1
sử dụng <$là thứ tôi chưa bao giờ nghĩ tới
Mega Man

3
@MegaMan Tín dụng đến Laikoni, người đã cho tôi gợi ý đó trong một thử thách codegolf khác một năm trước codegolf.stackexchange.com/questions/6281/ Lỗi
Sacchan

18

05AB1E , 2 byte

ø˜ or øS  (both 05AB1E versions)
ζ˜ or ζS  (new 05AB1E version only)
€D or €Â  (new 05AB1E version only)
.ι        (new 05AB1E version only)
ºS        (new 05AB1E version only)
·S or xS  (legacy 05AB1E version only)
+S        (legacy 05AB1E version only) 

Được tôi từ bỏ. Tôi không thể tìm thấy 1-byter để giải quyết vấn đề này. Tải của 2-byters, mặc dù ..

Thử ø˜trực tuyến hoặc Thử øStrực tuyến .
Thử ζ˜trực tuyến hoặc Thử ζStrực tuyến .
Thử €Dtrực tuyến hoặc Thử €Âtrực tuyến .
Hãy thử trực tuyến.
Hãy thử ºStrực tuyến.
Thử ·Strực tuyến hoặc Thử xStrực tuyến .
Hãy thử +Strực tuyến.

I / O như một danh sách các nhân vật.

Giải trình:

ø    # Zip/transpose the (implicit) input-list with itself
     #  i.e. ["a","b","c"] → [["a","a"],["b","b"],["c","c"]]
 ˜   # Deep flatten it
     # OR
 S   # Convert it to a flattened list of characters
     # (which will be output implicitly as result)

Chương trình duy nhất hoạt động giống nhau trong cả hai phiên bản 05AB1E. :)

ζ    # Zip/transpose the (implicit) input-list with the (implicit) input-list
     #  i.e. ["a","b","c"] → [["a","a"],["b","b"],["c","c"]]
 ˜   # Deep flatten it
     # OR
 S   # Convert it to a flattened list of characters
     # (which will be output implicitly as result)

Phiên bản này về cơ bản hoạt động giống như phiên bản trên cho phiên bản mới. Trong phiên bản cũ , trước tiên bạn cần có một cặp rõ ràng và sau đó bạn có thể nén / hoán chuyển nó. Chỉ ζtrong danh sách 1D sẽ là phiên bản không có bản quyền của 05AB1E.

    # For each character in the (implicit) input-list,
     # keeping all values on the stack into the resulting list:
 D   # Duplicate it
     # OR
 Â   # Bifurcate it (short for duplicate & reverse copy)
     # (which will be output implicitly as result)

Trong phiên bản mới của 05AB1E, nó giữ tất cả các giá trị trên ngăn xếp vào danh sách kết quả khi thực hiện bản đồ. Trong khi đó với phiên bản kế thừa của 05AB1E, nó sẽ chỉ giữ giá trị hàng đầu. Đó là lý do tại sao chúng chỉ hoạt động trong phiên bản mới.

   # Interleave the (implicit) input-list with the (implicit) input-list
     # (which will be output implicitly as result)

Bản dựng này chưa có trong phiên bản kế thừa của 05AB1E.

º    # Mirror each value in the (implicit) input-list
     #  i.e. ["a","b","c"] → ["aa","bb","cc"]
 S   # Convert it to a flattened list of characters
     # (which will be output implicitly as result)

Trong phiên bản kế thừa của 05AB1E, tích hợp gương ngang sẽ được thay thế º. Tuy nhiên, ∞Skhông hoạt động trong phiên bản cũ, bởi vì nó sẽ hoàn toàn chuyển đổi danh sách thành một chuỗi được phân tách bằng dòng mới trước khi phản chiếu nó hoàn toàn ( Hãy thử ở đây ), sau đó Scũng sẽ bao gồm các dòng mới này.

·    # Double each character
     # OR
x    # Double each character (without popping)
     #  i.e. ["a","b","c"] → ["aa","bb","cc"]
 S   # Convert it to a flattened list of characters
     # (which will be output implicitly as result)

Đôi là viết tắt của 2*. Trong phiên bản mới của 05AB1E, xây dựng trong Elixir, điều này chỉ hoạt động trên các giá trị số. Tuy nhiên, phiên bản kế thừa của 05AB1E được xây dựng bằng Python, do đó 2*hoạt động tương tự và lặp lại ký tự.

+    # Append all characters in the (implicit) input-list at the same indices 
     # with the characters of the (implicit) input-list
     #  i.e. ["a","b","c"] → ["aa","bb","cc"]
 S   # Convert it to a flattened list of characters
     # (which will be output implicitly as result)

Một lần nữa, vì phiên bản kế thừa của 05AB1E đã được xây dựng bằng Python, "a"+"a"kết quả là "aa", trong khi +không thể sử dụng để nối các chuỗi trong phiên bản mới. (PS: Có một phần bổ sung cho các chuỗi hoạt động trong cả hai phiên bản, «nhưng khi đưa ra hai đối số danh sách, nó sẽ nối chúng lại với nhau thay vì hợp nhất từng chuỗi ở cùng một chỉ mục như chương trình ở trên ( Thử tại đây ).)


Ngoài ra còn có ζ˜05AB1E hiện đại.
Grimmy

@Grimy Không nhận ra rằng nó không hoạt động trong phiên bản cũ. Tôi nghĩ nó cũng giống như ø˜vậy, vì vậy tôi cũng không buồn thêm nó vào. Tôi đã thêm nó (cũng như øS/ ζS/ xS).
Kevin Cruijssen

17

Sơ đồ kim tự tháp , 229 218 213 byte

    ^
   /l\
  /oop\
 ^-----^
 -^   ^-
 /[\ /]\
^---^---^
-^ / \  -^
^-/out\ / \
-^-----/set\
 -^   ^-----^
  -^  -    /+\
  / \     ^---^
 /arg\   /1\  -
^-----^  ---
-^    -
 -^
 / \
/arg\
-----^
    /1\
    ---

Hãy thử trực tuyến!

Điều này chắc chắn có thể ngắn hơn. Đầu vào được thực hiện thông qua các đối số dòng lệnh. Điều này tương đương với cơ bản:

str = input()
n = 0
while str[n]:
  print(str[n]*2)
  n += 1 

Với một vài cảnh báo, như việc in ấn thực sự được xử lý trong cả điều kiện vòng lặp và thân vòng lặp.

Thay thế 215:

     ^
    /l\
   /oop\
  ^-----^
 /[\    -^
^---^   / \
-^ ^-^ /set\
^- -^-^-----^
-^ / \-    /+\
^-/out\   ^---^
-^-----  /1\  -
 -^      ---
  -^
  / \
 /arg\
^-----^
-^    -
 -^
 / \
/arg\
-----^
    /1\
    ---

Hãy thử trực tuyến!


3
setthể được chuyển lên và rời mà không can thiệp bất cứ điều gì. Hãy thử trực tuyến!
Khuldraeseth na'Barya

Kim tự tháp Cult đã đến PPCG!
val

15

Thạch , 1 byte

Một chương trình đầy đủ in kết quả.

Hãy thử trực tuyến!

Làm sao?

Sử dụng một tính năng lỗi ...
Nguyên tử "nhân đôi" của Jelly, được triển khai với Python *và nó vectơ, trong khi danh sách các ký tự của Jelly ("chuỗi" duy nhất của nó) được triển khai dưới dạng danh sách các chuỗi Python thường chỉ dài một ký tự - đó là cho đến khi chúng tôi nhận ra rằng trong Python 'blah'*2='blahblah'...

Ḥ - Main link: list of characters (as parsed from an argument as a Python string)
  -                       e.g. ['A','b','b','a']
Ḥ - double (vectorises)        ['AA','bb','bb','aa']
  - implicit, smashing print     AAbbbbaa

Nếu bạn muốn tạo một liên kết đơn âm (chứ không phải chương trình đầy đủ), bạn có thể sử dụngḤṾV
Nick Kennedy

Ah, tôi không biết nó sẽ hoạt động - tốt đẹp!
Jonathan Allan

Trông tôi giống như nhân vật ba byte: $ echo -n "Ḥ" | hexdump -C<newline>00000000 e1 b8 a4 |...|
Jakuje

1
@Jakuje Mã này là một byte, af, chỉ là trình bày hình ảnh của byte đó, xem Jelly của mã trang (còn được liên kết trong tiêu đề của bưu điện).
Jonathan Allan

15

Thạch, 1 byte

ż

Hãy thử trực tuyến!

Xin lỗi vì sự thiếu kinh nghiệm của tôi, tôi mới bắt đầu với Jelly. Điều tôi tin là đang xảy ra là chúng tôi đã xác định một chuỗi dyadic, xử lý một đối số duy nhất là cả hai đối số trái và phải. Trong trường hợp này, chuỗi bao gồm "zip; xen kẽ x và y", xen kẽ chuỗi đầu vào với chính nó.

Ai đó đã đăng một giải pháp Jelly 1 byte, vì vậy tôi hy vọng cách đăng bài của tôi không tệ.


7
Chào mừng đến với trang web! Hoàn toàn ổn khi đăng câu trả lời có liên quan đến câu trả lời hiện có, đặc biệt nếu câu trả lời của bạn có lời giải thích còn câu trả lời khác thì không.
Phù thủy lúa mì

15

Con trăn 34 25 byte

lambda i:sum(zip(i,i),())

Hãy thử trực tuyến! Một chuỗi khác trả về một chuỗi thay vì danh sách các ký tự:

for i in input():print(i,end=i)
for i in input():               asking for the input, and doing a 
                                for loop for every char in the string.
                 print(i,end=i) print the character, and then close 
                                the line with the same character.

Hãy thử trực tuyến!


4
lambda i:sum(zip(i,i),())nên làm cho -9.
Ông Xcoder

@ Mr.Xcoder này trả về một danh sách các ký tự, thay vì một chuỗi. Bản gốc có thể được cải thiện 3 byte, mặc dù:for i in input():print(i,end=i)
primo

lambda i:''.join(c*2 for c in i)32 byte nhưng trả về một chuỗi chứ không phải danh sách
Gábor Fekete

Vẫn hoạt động với 31 byte :)lambda i:''.join(c*2for c in i)
Movatica


11

Hội 8088, IBM PC DOS, 16 10 byte

Lắp ráp xxdbãi chứa byte

00000000: b401 cd21 b40e cd10 ebf6                 ...!......

Danh sách chưa được phân loại:

B4 01       MOV  AH, 01H        ; DOS read char from STDIN (AH=01)
CD 21       INT  21H            ; read char into AL (echoes input)
B4 0E       MOV  AH, 0EH        ; BIOS write char to console
CD 10       INT  10H            ; write char to console 
EB F6       JMP  -10            ; continue looping until break

PC DOS độc lập thực thi. Đầu vào từ STDIN, đầu ra đến bàn điều khiển.

Đầu vào bảng điều khiển tương tác:

nhập mô tả hình ảnh ở đây

Đầu vào bằng đường ống:

nhập mô tả hình ảnh ở đây

Câu trả lời gốc 16 byte :

Lắp ráp xxdbãi chứa byte

00000000: d1ee ad8a c849 acb4 0ecd 10cd 10e2 f7c3  .....I..........

Danh sách chưa được phân loại:

D1 EE       SHR  SI, 1          ; point SI to DOS PSP (080H) 
AD          LODSW               ; load input length into AL 
48          DEC  AX             ; remove leading space from length counter 
8A C8       MOV  CL, AL         ; move length to loop counter 
        C_LOOP: 
AC          LODSB               ; load next char into AL 
B4 0E       MOV  AH, 0EH        ; PC BIOS tty output function 
CD 10       INT  10H            ; write char to console 
CD 10       INT  10H            ; write char to console again
E2 F7       LOOP C_LOOP         ; continue looping through chars 
C3          RET                 ; exit to DOS

PC DOS độc lập thực thi. Nhập thông qua dòng lệnh, đầu ra đến bàn điều khiển.

nhập mô tả hình ảnh ở đây


Sử dụng XCHG AX, CX thay vì MOV CL, AL để lưu một byte.
NieDzejkob

1
@NieDzejkob, cảm ơn! Vấn đề duy nhất ở đó được rằng LODSWsẽ đưa không gian hàng đầu ( 20H) từ 81Hvào AHđó tất nhiên sẽ mess lên LOOPnếu đó là trong CH... Thật là đáng tiếc.
640KB


10

JavaScript (Node.js) , 22 byte

Đưa đầu vào như một mảng các ký tự.

s=>s.flatMap(c=>[c,c])

Hãy thử trực tuyến!


JavaScript (ES6), 26 byte

Đưa đầu vào dưới dạng một chuỗi.

s=>s.replace(/./gs,c=>c+c)

Hãy thử trực tuyến!

Phiên bản thay thế được đề xuất bởi @PabloLozano:

s=>s.replace(/./gs,'$&$&')

Hãy thử trực tuyến!

Làm theo cách đệ quy cũng dài như sau:

f=([c,...s])=>c?c+c+f(s):s

Hãy thử trực tuyến!


s=>s.replace(/./gs,c=>c+c)vì vậy .cũng phù hợp với dòng mới
Nahuel Fouilleul

@NahuelFouilleul Bắt tốt. Cảm ơn!
Arnauld

1
@KevinCruijssen join('')Nên chăm sóc điều đó. Theo suy nghĩ thứ hai, điều đó có thể làm tăng sản lượng theo cách không chuẩn để có thể không hợp lệ.
Oliver

1
@Oliver Tôi không nghĩ nó hợp lệ. 05AB1E của tôi sẽ có một vài giải pháp 1 byte trong trường hợp đó. I / O mặc định cho một chuỗi là, hoặc .. một chuỗi hoặc một danh sách / mảng / luồng ký tự / chuỗi char đơn. ["aa","bb","cc"]là một danh sách các chuỗi, tuy nhiên, không phải là một chuỗi hay danh sách các ký tự của chính nó. Thêm một phép nối hoặc làm phẳng nó vào danh sách các ký tự là hợp lệ, nhưng sẽ phải được tính vào số đếm byte.
Kevin Cruijssen

1
@KevinCruijssen Vâng, tôi đồng ý :-)
Oliver







5

Haskell , 15 byte

Ở đây (:)<*>purecó một đối số và trả về một danh sách chứa đối số này hai lần. Sau đó, >>=ánh xạ chức năng này qua mỗi mục nhập của danh sách đầu vào (là một chuỗi trong trường hợp của chúng tôi) và làm phẳng kết quả (danh sách danh sách) trở lại danh sách.

(>>=(:)<*>pure)

Hãy thử trực tuyến!


Có cùng câu trả lời đầu tiên, yêu thích việc sử dụng bộ kết hợp S
cole

@cole Tôi chỉ thấy câu trả lời ngắn hơn của bạn khi tôi chuẩn bị gửi câu hỏi này - nhưng dù sao tôi cũng đã đăng nó vì tôi nghĩ nó rất thanh lịch :)
flawr


5

Mê cung , 12 byte

",)@
" (
..:

Hãy thử trực tuyến!

Tôi mới phát hiện ra ngôn ngữ này nên câu trả lời này có thể được cải thiện đáng chú ý ...


1
Hoàn thành tốt, suy nghĩ đầu tiên của tôi là như vậy (chỉ ","thay vì "",), tôi đã quản lý mười một giờ - có thể có mười hoặc tốt hơn?
Jonathan Allan


5

Võng mạc , 4 byte


$<&

Hãy thử trực tuyến!

Khớp chuỗi trống (nghĩa là vị trí trước / sau mỗi ký tự) và chèn chuỗi giữa khớp này và khớp trước đó (luôn luôn chính xác là ký tự trước; ngoại trừ khớp đầu tiên không có gì).


5

Java 8, 27 byte

s->s.replaceAll(".","$0$0")

Hãy thử trực tuyến.

Câu trả lời cũ 31 byte trước khi các quy tắc được thay đổi:

s->s.replaceAll("(?s).","$0$0")

LƯU Ý: Đề xuất của @EmbodimentOfIgnorance ( \n|.thay vì (?s).đã được hoàn nguyên, vì nó không thành công nếu đầu vào có chứa \r. Cảm ơn bạn đã báo cáo với @ OlivierGrégoire .

Hãy thử trực tuyến.

Giải trình:

s->                             // Method with String as both parameter and return-type
  s.replaceAll("(?s).","$0$0")  //  Regex-replace all matches with the replacement
                                //  And return the changed String as result

Regex giải thích:

(?s).                           // Match:
(?s)                            //  Enable DOTALL mode so newlines and carriage returns
                                //  are treated as literal
    .                           //  A single character

$0$0                            // Replacement:
$0                              //  All character(s) found in the match
  $0                            //  And again all character(s) found in the match

1
(?s).có thể được thay thế bằng\n|.
Hiện thân của sự thiếu hiểu biết

@EmbodimentofIgnorance Ah, tất nhiên. Cảm ơn! :)
Kevin Cruijssen

Các \n|.phiên bản không hoạt động đúng với đầu vào "\r". Các (?s).phiên bản hoạt động chính xác với \r, mặc dù.
Olivier Grégoire

Yêu cầu hiện tại cho biết ASCI trong phạm vi 32-126, vì vậy bạn có thể chơi gôn đến 30 bằng phím tắt @ EmbodimentofIgnorance.
Olivier Grégoire

1
Rất tiếc, đôi khi tôi quên rằng \nnó có thể in được nhưng không phải là một phần của phạm vi có thể in ASCII.
Olivier Grégoire

4

Bình thường , 2 byte

.i

Hãy thử trực tuyến!

.interleaves hai bản sao của đầu vào với nhau. Đầu vào là tiềm ẩn, do đó, một phiên bản 'đầy đủ' của chương trình này sẽ là .iQQnơi Qlà đầu vào của chương trình.


4

MarioLANG , 23 20 17 byte

>,
"+
.[
.<
!-
#=

Hãy thử trực tuyến!

Không giống như brainfuck, MarioLANG trả về -1 trên EOF, vì vậy chúng ta phải tăng giá trị đọc trước khi so sánh nó với 0, và sau đó giảm dần trước khi in. Đây có lẽ là câu trả lời ngắn nhất có thể có trong MarioLANG.


4

Brain-Flak , 48 byte

([]){{}({}<>)<>([])}{}<>([]){{}(({}<>))<>([])}<>

Hãy thử trực tuyến!

Mã này có hai phần chính. Đầu tiên chỉ đảo ngược chuỗi:

([]){{}({}<>)<>([])}{}<>

Cái thứ hai gần giống nhau, nó đảo ngược chuỗi và nhân đôi các ký tự

([]){{}(({}<>))<>([])}{}<>

Lý do chúng ta cần đảo ngược mọi thứ là chúng ta cần chạm vào mọi phần tử của chuỗi để tạo đầu ra. Vì Brain-Flak sử dụng mô hình ngăn xếp chạm vào từng nhân vật có nghĩa là bật tất cả các yếu tố và đẩy chúng. Bởi vì cách thức xếp chồng của FIFO, điều này có nghĩa là mỗi lần thực hiện xong, bạn đảo ngược chuỗi. Vấn đề đảo ngược không có trong Brain-Flueue dưới đây.

Brain-Flueue , 28 byte

([]<>){({}[()])<>(({}))<>}<>

Hãy thử trực tuyến!

Vì hàng đợi là lần đầu tiên cuối cùng, tất cả những gì chúng ta cần làm trong Brain-Flueue được lặp lại thông qua toàn bộ chuỗi nhân đôi mỗi nhân vật tại chỗ. Tuy nhiên, điều này làm cho việc lặp lại toàn bộ ngăn xếp trở nên khó khăn hơn. Trong Brain-Flak, chúng ta chỉ có thể đi cho đến khi chiều cao của ngăn xếp bằng 0, tuy nhiên với một hàng đợi, đẩy thứ gì đó đặt nó xuống dưới cùng của hàng đợi về cơ bản là mất nó. Thay vào đó, chúng tôi sử dụng hàng đợi thứ hai để theo dõi số lượng hoạt động chúng tôi cần. Điều này làm cho vòng lặp chính trông giống như:

([]<>){({}[()])<>...<>}<>

Với nội dung ít ỏi

(({}))

Để cho vui, cả hai câu trả lời này có thể ngắn hơn rất nhiều nếu không có byte rỗng trong đầu vào (giá trị ascii bằng 0)

Brain-Flak , 26 byte

{({}<>)<>}<>{(({}<>))<>}<>

Hãy thử trực tuyến!

Brain-Flueue , 14 byte

{(({}<>))<>}<>

Hãy thử trực tuyến!


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.