diff --git a/2016/06/Cargo.lock b/2016/06/Cargo.lock new file mode 100644 index 0000000..64a7ba3 --- /dev/null +++ b/2016/06/Cargo.lock @@ -0,0 +1,4 @@ +[root] +name = "06" +version = "0.1.0" + diff --git a/2016/06/Cargo.toml b/2016/06/Cargo.toml new file mode 100644 index 0000000..07af604 --- /dev/null +++ b/2016/06/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "06" +version = "0.1.0" +authors = ["logaritmisk "] + +[dependencies] diff --git a/2016/06/example.txt b/2016/06/example.txt new file mode 100644 index 0000000..32ba518 --- /dev/null +++ b/2016/06/example.txt @@ -0,0 +1,16 @@ +eedadn +drvtee +eandsr +raavrd +atevrs +tsrnev +sdttsa +rasrtv +nssdts +ntnada +svetve +tesnvt +vntsnd +vrdear +dvrsen +enarar diff --git a/2016/06/input.txt b/2016/06/input.txt new file mode 100644 index 0000000..e5d8efe --- /dev/null +++ b/2016/06/input.txt @@ -0,0 +1,624 @@ +wrqhvxvz +fyzrlmet +mnoqzwlx +nckjlmjq +ppgpwuhw +gwmlkpsf +mraribhd +eexeibet +phnkfnoj +huvgfryn +cctfbymg +vuzqijfv +csxkasak +thdtpgsv +qtvawqyd +sbrzqyjv +tsgeceoo +iersjjvv +kkaftivi +cohpqdsa +jqntmweh +ggwfrfij +etgdxkpm +chpiqqnk +mmubsxma +bjbuxerx +ppikxcba +argnznvv +upxrvrws +cnutkqpc +sjxwbjgd +qydjtzwt +fosmuary +kbegfawt +qrhczgxr +xveyfklu +fpijdoxk +efwixzzt +pohwstgq +vlacdfij +idyukbzr +fomngohx +byfhtiqm +nygeoydz +zzindnsu +cqpxyvpx +urbwswjx +bcrsfufk +ogprzbbb +ecqadcfs +djtpcvzf +omxatkmv +qwjmrgiy +vmlqsjki +eacklrro +afvmajbo +yyfzlgqj +mnddmztj +hgcuzdvz +dcdlgcqa +ruellrxp +stgcbypg +cyincneb +gfivdkac +imszlrkh +aurxrsak +upmpveme +ooufhdxg +gbovipin +oekqjihp +ffpzbgim +wmyllpok +jlxdcsfw +rdfbeprc +viuyhnso +qswyjhtr +zqxprsxb +mugvrogu +swgbpgyl +sjxykzhq +bknjvylv +sjroofyl +aclottku +lwzomawr +hmnxauei +eryjulgk +auqbkmsq +wjpyinlb +tycjmlzf +juhepezh +vnhmglwy +wflziftq +yikhdblb +nhzxxdzq +dxrthhic +uvzqbnol +mcctvnwr +npwyyxnd +bbnyzojh +xgfuoirw +jfgjszne +rjopxfcm +efgfmumj +nntsuprr +wxepxebk +ekqnppky +ceuhjapp +xoiukhdz +yyqatdub +bhbsuewa +fgbquatv +yaboswth +snbukjjk +pynjdknt +vvxsotzy +yewjntol +zziajcor +idzqcqdn +snomhhsq +taleymgw +oaofkdgh +uykbobee +qgphfpys +epmdwvie +rswvihev +qtsqhqsa +onypxjqu +lbehiurm +yrqhldki +wntmkpxg +hvhoqjfm +imfrfzzc +hlkrbedu +eltodvxl +fmjbjlzo +uudrfilp +nuordysj +wxmaadsr +zucvyxer +yzgztram +dvpenypi +iugxqkyy +tjwuhzom +rqvviujh +mvwtwcqf +rzzlgbor +ldvgepup +gxkwrgls +pxzmtxes +ydnyqvjd +ctmbtmpn +vzvbnvoh +ogjvwzmi +hkutstvd +wtkbgjxc +zwvdtndc +xoewgwrf +vuywuoyy +tmvgsowx +drpazgpc +hdpktjre +xhujdiuf +usidqmiu +paisyipg +udgpwuyr +xyqujvyl +yzymvngz +bjsfhkho +kleeufzg +boxtwvqp +eirtmgdq +uyatzfjp +eiwaglki +zmfdosar +kqjhffzw +xphspwfi +lkspqenw +snostusw +pwomwuxx +tuwdkyof +jafayips +fwzjafvu +hbsdgbcd +hqabjeak +azauvrcz +yhsyyfht +ncfluumb +xkyddact +absnaesw +nwwgysfc +ovkoeoak +jfkivysc +vnbxmqmg +yxyfjqec +fbpxjxoq +pwfwufud +sxschjcz +iemyfvyk +jpsozquz +xxkbhqfx +ctzdlqim +ecvuennt +ntsymmce +cfammoxo +qdeuphqg +shhihavx +raxrfsjs +rffcmsfe +keoiclfo +tonhzkka +qvifltqb +dxgzlvvt +wjolvrqy +rxrojpfe +zjfegcjb +ionhbxlk +uttnrfbn +elkligyr +zxtgftyp +zgrlkmbm +udynqgcr +pwxnwfxi +wslxkqmt +lzdhoala +cccvdbva +sgdusmtl +kluxyiti +wfekkxph +obdeuglc +vsizhxgd +txldyjzb +ytwdfalx +wgdwnlmh +nbfwcuec +cphqneqh +ykmiwxci +diqmosuf +ycxbayxd +uozhqaha +foaebowb +whsvmuqm +uqycszbo +caatmkxj +pmrllxgj +rpjtthix +nkabrxoe +dyjavdch +bvfwapob +gxdagoag +ygsigzqg +tojebkhg +maywseuz +fzycswkp +gxuhflnn +xdrlwkzt +qzdueidt +xrhcqpcx +anmlyixt +igkeehdq +rbbfewws +ybzityqu +xrsnibvq +kiitlldy +dnnxpbgg +vghhgbay +lttzpsfu +mzurjkii +tyjyhtbg +ymvdocyu +errkxbjz +kdhdhckp +siqzydiw +gaxwpwtf +jgsgmbxa +meyjbgaj +nxdgwanj +irypqcfl +kwzsqbtn +vqbwffro +gbhjoydl +mtjeaybv +vkejxfui +xkrlzagc +rvckysna +qttzpaob +faejrisy +oenhtrjt +zpajldwd +hdlfphtw +uuuztawz +priivfke +ltqlgmcy +wekrahkz +arvgglws +gmfrdeec +bslrhbcq +dwredpeh +ripdkqay +bkajataw +rfwccavd +vrcnadbn +mxjayvar +xppvhrfq +rnbkpicv +xlcoaixn +ypfgypwn +aucydvqh +gfmivoiw +tdrrgvae +nvatvqbd +uqnkdtci +yvvkoljz +nrvayuna +kyjspqke +idfgxyxa +whhnbvzj +untvohwp +nbowzeok +fojmdmwt +hicfolns +nvjmitnz +dixbuczb +oozreove +aogeaoij +swqdsqur +kuircnkc +jommqnij +jeoccbrl +srncrgac +bflzsoxz +crqrvnux +aehtnnrc +pjfpvctd +ooudwhnj +oajsxzfy +zgocdfqi +skezvrmd +hphnrmdo +mntkzcex +dcezrbsc +cwvnaeky +zazjhuho +hjsicgvu +bblytdbn +kuioocro +wdmsbnph +pglvxlat +lfivjfyl +tfhuxole +axtnimum +avbexhov +wuwtxwli +ovqriwps +kpzzawgo +zzrnrxfc +erbhfcuz +srikwbhj +ihkseool +ihnzciwn +drvqkldw +qjjmhdiq +zthvplsb +cvzajngd +aztvfmpc +osvxkdfu +hujqnbej +qlailyvd +aldnonen +mlwgljdh +ljegteof +hmydlwte +dxcbelhq +ikxejooi +rxfqniee +qzfxpqrw +qcletmfv +rlnllmwt +ldgcvuaq +oijbcwzp +nsfanzbx +zqtxrhlw +vruxpbdr +zovauywl +vfqsnrkg +jseiugwx +gplkhkbv +vgxaikyq +fxuwawnt +txpwlven +lhdukmwm +vqohfdux +pwwkcyuy +siyuwkdf +ijeceqqv +rcafsasu +dwmzwajz +hpwanjtr +aqcumwlo +nblfdzch +xjmgbuai +dbcmcucf +ulqoaslo +dilljkcb +qzbuzkuj +kqaovbws +ggaoqcge +dkafdhok +kiwmtsle +pmosnoov +bqzwbyff +jzbkupuq +loruoeuj +znxhxcbq +zuiojajs +nkzxcjnb +byfmovta +lexozwii +mmiirvzo +wxdmazhu +tvakysqv +fcclondf +laovojik +liwlmxma +fhfyuwhu +dhnbftia +hhjgkstn +xievywrd +ytggugmi +fueqzuxp +cntcbskl +moevqzch +rkvngfzu +vyoyrmnz +fsmfxqux +kjrcqres +wbwgstkj +bbpkbyfv +odlwmtdm +yvwxzpkp +tglceron +pfqhznpf +cjvguvna +awatckgf +jjuedfcr +xsmzexyx +zolugtkn +equadjbw +yzuwbeip +juokhxyh +blbzigrg +xiiqmrfr +wpklubhl +dnklxihu +dvypukjj +gezdwsyq +ijpsmlhy +haybyxgt +ttrpwsia +xsmuumcy +zjcjcfgn +qcyfmzxn +jbpiesjd +imsgjvbe +bluqigdj +pkjtbwrz +ghdqwhof +qqcyrcmt +nwqbpohw +wtdmhjpz +kysorzis +beybysab +wzotkcsl +rkxcjtxw +kxdovhby +nwbmwfvw +ldgnxdzg +fvkssaql +gwnpsneo +kzdageby +tvalcxyg +vudemgvl +nhsqjdry +ihbwfzmq +ulzxzqpr +ulyisqeh +gibzsqab +qlbvivbk +zfjbeimz +uwwkbmad +jysiepul +pcttcpfb +ikigjtum +ebnjregv +wlnojjdl +jseorxzw +jadngcyb +chblsorv +atsykhzy +llmwiiue +lncwmxbm +uaprvgtu +fsfbhhna +qekriahp +cprovrro +arkzaotx +cqkmiisd +byasehtp +mquxvaus +yqdboakk +fcbmnmas +ndgancyd +mqbhpwky +bqqnrysa +heevqgpx +wenamdlt +geqpvmvy +awohkyss +csauzidz +rzbxnqxo +lijyetnn +szhywdzw +bvspeaot +cassrzgo +ebniprcj +jkgqnrmt +kanfkldg +tatiqhyp +kjrnsxxf +tigsmyql +dpiwuvgd +mysstyqk +ggmceolm +uykudpjq +lqcfbupx +bspqglas +adlikxti +ytkklkgs +hagxejlb +qawjetxs +mfozming +mijryfrm +aiqisdzo +oizwdmba +fmwhxvyn +nbpvnnqu +uucpiqnr +derohmtm +mtvvlkwb +odofsftu +otdpquza +ieuqarfj +efbllxnl +piyhprln +zzhuyevt +xggfukpg +oagdqlte +jcaknznq +bmqvzzpm +gqccntfm +kejcxspk +eghjfubo +jpesccrp +lptxbsjp +lkqdahjg +gllipbpw +gmtpkpbh +vskklchk +hkujjpqf +onqsydhq +abymijve +setxngek +pylgwuhu +rvmcnudu +zkoigkmp +jhufctqm +rjlebecw +kfrcyvsg +gdvswlmx +ddneodvc +eleaatkz +xdrrnsmo +eavdleuh +snuapqlh +qfprvzlf +jwtxoteb +xhmeonrl +oomepucp +voldiamz +pgctnnvi +zxctfwmu +ssvzhjjc +iszyacdg +kwhtrkug +tsfcxlah +jhnpuzwv +vgvytgdv +xppvelhv +lczyglmi +mzyncyji +fktibrns +tnpbpekf +htcfrtea +iehqohtx +ofhqjvsk +etoxthqk +lcpnurbf +pquperie +icdggxtv +gebpbjje +hrtqhskf +plxtfopc +smtpxpvf +tcihqpmd +tmprzzjw +hnjkwcvm +qzmofpgs +ssmfzilr +glxqqwis +umeygdrp +qhqgfocl +rmxlqigp +vcxozjsn +mviznnhr +islgcrgm diff --git a/2016/06/src/main.rs b/2016/06/src/main.rs new file mode 100644 index 0000000..fe96529 --- /dev/null +++ b/2016/06/src/main.rs @@ -0,0 +1,45 @@ +use std::io::{self, BufRead}; +use std::collections::HashMap; + + +fn main() { + let stdin = io::stdin(); + + let lines = stdin.lock().lines() + .filter_map(|x| x.ok()) + .collect::>(); + + let mut count: Vec> = vec![HashMap::new(); 1024]; + + for line in lines { + for (i, ch) in line.chars().enumerate() { + *count[i].entry(ch).or_insert(0) += 1; + } + } + + let corrected_most: String = count.iter() + .filter_map(|x| { + let mut vec: Vec<_> = x.iter().collect(); + + vec.sort_by_key(|k| k.1); + + vec.pop() + }) + .map(|x| *x.0) + .collect(); + + let corrected_least: String = count.iter() + .filter_map(|x| { + let mut vec: Vec<_> = x.iter().collect(); + + vec.sort_by_key(|k| k.1); + vec.reverse(); + + vec.pop() + }) + .map(|x| *x.0) + .collect(); + + println!("corrected_most={}", corrected_most); + println!("corrected_least={}", corrected_least); +}