Okee nog één probleem voor de echte AoC van start gaat. Hopelijk iets makkelijker dan het probleem dat ik eerder postte, en redelijk in de trant van het soort problemen dat je bij de AoC ook voorgeschoteld krijgt.
Dag -1: vierkantsencryptie
De kerstman heeft een gedicht geschreven. Om te voorkomen dat de tekst voortijdig uitlekt heeft hij het versleuteld met een zelfverzonnen encryptie-algoritme.
Dat werkt als volgt. Eerst plaatst hij de karakters in een vierkant rooster met even zijdenlengte. Dan roteert hij de letters met de klok mee. Hoe dat werkt, leg ik uit aan de hand van een voorbeeld.
Stel je hebt een rooster van 6x6, zoals hieronder:
abcdef
tABCDg
sL12Eh
rK43Fi
qJIHGj
ponmlk
Dit kun je zien als drie concentrische vierkanten:
abcdef ...... ......
t....g .ABCD. ......
s....h .L..E. ..12..
r....i .K..F. ..43..
q....j .JIHG. ......
ponmlk ...... ......
Bij een codeerstap verschuift de Kerstman alle letters binnen een vierkant met de klok mee. Voorbeeld:
a--b--c--d--e--f t--a--b--c--d--e
| | | |
t A--B--C--D g s L--A--B--C f
| | | | | | | |
s L 1--2 E h r K 4--1 D g
| | | | | | => | | | | | |
r K 4--3 F i q J 3--2 E h
| | | | | | | |
q J--I--H--G j p I--H--G--F i
| | | |
p--o--n--m--l--k o--n--m--l--k--j
Nu is dit op zichzelf niet zo effectief. Om de encryptie-graad op te schroeven, voert de Kerstman de codeerstap meerdere keren achter elkaar uit. Bijvoorbeeld in 5 stappen:
Invoer: Na 1 stap: 2: 3: 4: 5:
abcdef tabcde stabcd rstabc qrstab pqrsta
tABCDg sLABCf rKLABe qJKLAd pIJKLc oHIJKb
sL12Eh rK41Dg qJ34Cf pI23Be oH12Ad nG41Lc
rK43Fi qJ32Eh pI21Dg oH14Cf nG43Be mF32Ad
qJIHGj pIHGFi oHGFEh nGFEDg mFEDCf lEDCBe
ponmlk onmlkj nmlkji mlkjih lkjihg kjihgf
Het gecodeerde grid na 5 stappen is dus:
pqrsta
oHIJKb
nG41Lc
mF32Ad
lEDCBe
kjihgf
Om het te decoderen, kun je de stappen in omgekeerde volgorde uitvoeren, waarbij je natuurlijk moet weten welk aantal codeerstappen gebruikt was.
Deel 1
De gecodeerde tekst staat hieronder, maar de Kerstman heeft moeite om 'm te decoderen. Kun jij 'm helpen? Om te beginnen decodeer je 1000 stappen. Als je het goed gedaan hebt, dan zijn de letters op de diagonaal van linksboven naar rechtsonder:
spoiler:jsuit_m__bsh_po"coeiditwohwel_r!_Pnhthulaa_wfdtrdd
_,lla_ot_samtsirhyiij,H_i_oehiadhiidtr_nopabsh!edk
arist_hnegy_neheO:_.ytnt_anu;W;aohe_house/Not_a_cl
nsag_hao_dotraeh_I_tuB.eltsiht_a_fo_nwod_eht_ekirh
dgtag_maet_sih_ot_,hgielsnkdsa_l_odtww_d_oanc_,lei
_eivmshes__e_lerifr_tA_gnarps_eH;esor_eh_yenmih_at
t_deanAfo/fyunlii_omshb___a_seapCwwedny__fts_howto
owa_ndca_e.t_asSc_de!sthltw_chikrti_eaia,__iecoeur
_jaai___a_long_winter'str_y____mnzlee_u_ad_w__alre
ats__lyratenmhreyeatlveefapnsmrieochcd_,is__vetfej
lh!wuamoled_d_my_bed_to_see_what_was_the_tndih,__s
ledhwy_fciao.nldtse_at!sliciitow_I_flew_m_nestNlw;
_Ahitin__p,j_l___kk_noHde_.e,wsh_hedkndlag_ni_elae
ae_sonisatie_appear,But_a_miniature_slhitnuropoasc
_v_t!g_n_ail-a_dah_eH;htaereh__o_,_Dhrrktihunua__m
gs_lV_Iihtsl,__mrlantAt_lngeirahrtn_nseeehets_tist
o_keyh_ac_sy_bes_courselra_"_psenhN_N_w__tl__,_rtT
oif,midruda.drhihouted,_and_caP_f!utsd_ago_nodrniw
dmeA.snbselHeo_hs_etcy._rw__llordn_imcu_enlefoh_ra
__tn__a__lfeoat__ede_lhoh_nmtneo_ut_l_pfb__h_ngers
neaddf_rer__ednsdlniHirhsra_tr_ss_e,_e_ledmts_oei_
ix__oi,usSewh_eenoosy_,;_nrn__!kihie__tahat_uatont
gcoaenfoorlaifmlnrD_ass_Io_l___eHioknehs_ho;g_nlgh
hlxwwge_rtfs_aogC__ewethe_skcste!_aoroehi_hsagir,e
tana,eidau,_rcmarw,yaderd/otaeohy__m,i_,aI_gr,ha__
!i,yarhe_dAc_e_eaone__teo-w-nh_crffst_sTa_on-_ehnn
”mN_,_clefnhopa_hnoshafwTh/_ett_reo_Iaaomwtipp,_oi
-,it_artr_du___nn__-sl_e-iW__ohse__eddsrho_kldIatg
-_en_setes_b,tnah!!-alchimnefleihwphehhe_ntcuons_h
-edhrikohlIbeeiahrd-dyipAhyylc_Helmte_.__khoml__et
-rswid'otl_yte__heihiofso_ees_t!t_u_rlWo__gtsfhhv_
-eyeee_i_al_dlw_fcpwiS_adtSWapoy_dtd,yhpaois_uoteb
-___h_rnniaah,eonnh!r_yl_Atdh;rr_rsnW_eoata_d_p_ne
-h,ntoesw_unecnwsaD_,woucyuteoe._a_Ailnio_rea_ei_f
-eai_fh_aegdeak_domcbow,And_the_bee,th_vaethnhsaao
-_e_n__qloh_t__utctowano____snow;Thhhiw_wmstcn_,hr
hdeiihnr_dept,h_!,pado_i_oowAswaaeet_nhhk___entsee
_rhh_iiiesdlwethshdnesud_dlo_elttil_aeatmetldihtd_
eotlgs__he_uy/That_shook_when_he_laughtr_vnl_aa_aC
hviwu_amtlwe_cpiel__fo,nig_yl_Be_ttiet_l_aeai_tfdh
gewwnnmo_fhen_I_saw_mdaies_ittrl_dnht_ewrgw_n___Wr
___esom!n;A_wink_of_his_eye_and_a_twihp,n__d_gS_si
koyd_satmnd_ruasDef_hcu_aton_se___heb_lyontethtn_s
;ueelemaodeiruselepe_k_lomoe_not_a_word,_bulhI."ht
stn_l,e_rwaey__h,o_y_tcnhlaoihpsutnidl__Skile__hem
p_meaisdo__k_dhnholsiawiwlo__Nn_batonwhArnprieNMia
tois_deltsen_erew_nerdlihc_eld_u_eseinr_o_owrbi_vs
bfhgnosihwTi_e_l_n_aIpHhbt_eb_dluow_noos_salohc_i,
l_c_eht_yb_gnuh_erew_sgnikcots_ehT;esurThAs_ntegA_
_sight---“Happy_Cdh__ardish_ts_ss,__ewtol_thtd_eaw
t___hwaiufito__atnmncegrutph_dsr___hguorht_lla_neh
Deel 2
Voor het echte AoC-gevoel pas openen als je deel 1 opgelost hebt.
spoiler:Plots herinnert de Kerstman zich dat hij de tekst niet met 1000 stappen, maar met 1.000.000.000.000 (1012) stappen gecodeerd had! Vind de oorspronkelijke tekst. Als je het goed gedaan hebt, zie je dat meteen.
[
Voor 1% gewijzigd door
.oisyn op 04-12-2024 12:44
]