From 5bf5da371d4fcbf2f2ae9e261b9a1122b21fb15c Mon Sep 17 00:00:00 2001 From: Aadi Desai <21363892+supleed2@users.noreply.github.com> Date: Mon, 16 Oct 2023 10:44:41 +0100 Subject: [PATCH] Day 7, Part 1 & 2 --- src/bin/d7.rs | 115 ++++++ src/input/d7.txt | 991 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1106 insertions(+) create mode 100644 src/bin/d7.rs create mode 100644 src/input/d7.txt diff --git a/src/bin/d7.rs b/src/bin/d7.rs new file mode 100644 index 0000000..1bcd226 --- /dev/null +++ b/src/bin/d7.rs @@ -0,0 +1,115 @@ +const INPUT: &str = include_str!("../input/d7.txt"); + +struct Dir { + name: String, + contents: Vec, +} + +struct File { + size: usize, +} + +enum Node { + Dir(Dir), + File(File), +} + +fn main() -> anyhow::Result<()> { + let mut tree = Dir { + name: "/".to_string(), + contents: vec![], + }; + let mut cwd = vec!["/".to_string()]; + for line in INPUT.lines() { + let mut l = line.split(' '); + match l.next() { + Some("$") => match l.next() { + Some("cd") => { + let dest = l.next().expect("cd must have destination"); + match dest { + "/" => cwd.truncate(1), + ".." => { + cwd.pop(); + } + _ => cwd.push(dest.to_string()), + } + } + Some("ls") => {} + _ => unreachable!(), + }, + Some("dir") => { + let mut dir = &mut tree; + for cd in &cwd[1..] { + dir = dir + .contents + .iter_mut() + .find_map(|n| { + if let Node::Dir(d) = n { + if &d.name == cd { + return Some(d); + } + }; + None + }) + .expect("cd should be valid"); + } + dir.contents.push(Node::Dir(Dir { + name: l.next().expect("dir must have a name").to_string(), + contents: vec![], + })); + } + Some(size) => { + let mut dir = &mut tree; + for cd in &cwd[1..] { + dir = dir + .contents + .iter_mut() + .find_map(|n| { + if let Node::Dir(d) = n { + if &d.name == cd { + return Some(d); + } + }; + None + }) + .expect("cd should be valid"); + } + dir.contents.push(Node::File(File { + size: size.parse().expect("filesize must be unsigned int"), + })); + } + None => unreachable!(), + } + } + let mut dirs: Vec<(&str, usize)> = vec![]; + dir_size(&mut dirs, &tree); + let p1: usize = dirs.iter().filter(|(_, s)| s <= &100000).map(|d| d.1).sum(); + println!("{p1}"); + let target = dirs + .iter() + .find(|(name, _)| name == &"/") + .expect("root dir must have a size") + .1 + - 40_000_000; + dirs.sort_unstable_by_key(|k| k.1); + let p2 = dirs + .iter() + .find(|(_, s)| s >= &target) + .expect("a dir big enough must exist") + .1; + println!("{p2}"); + anyhow::Ok(()) +} + +fn dir_size<'a>(vec: &mut Vec<(&'a str, usize)>, dir: &'a Dir) -> usize { + let size = dir + .contents + .iter() + .map(|n| match n { + Node::Dir(d) => dir_size(vec, d), + Node::File(f) => f.size, + }) + .sum(); + vec.push((dir.name.as_ref(), size)); + size +} diff --git a/src/input/d7.txt b/src/input/d7.txt new file mode 100644 index 0000000..c28734c --- /dev/null +++ b/src/input/d7.txt @@ -0,0 +1,991 @@ +$ cd / +$ ls +dir blrnnv +dir ctfjwl +dir dqf +135993 dqqbcfr +dir ftj +125510 fzjdz +dir jvtlfbzr +31762 lsvw.lwr +dir qfstpm +dir sbprmc +dir svbnljr +dir tchbjclg +dir wtm +dir ztrz +$ cd blrnnv +$ ls +169869 mjjj.wnq +$ cd .. +$ cd ctfjwl +$ ls +209537 zzdpcnmt.qbf +$ cd .. +$ cd dqf +$ ls +205200 hnbqlmmg +80316 lmw.zmd +dir mwj +122312 tsrwvqbg.tzh +$ cd mwj +$ ls +18195 bddslhrg.twf +122813 qfccg.crl +$ cd .. +$ cd .. +$ cd ftj +$ ls +dir clchr +dir hmd +40232 vtzlv +$ cd clchr +$ ls +dir sbzf +$ cd sbzf +$ ls +257770 thwhz.pgp +$ cd .. +$ cd .. +$ cd hmd +$ ls +62643 bddslhrg.qzl +dir lfpm +277745 sgddpc +117478 vjchlsrc.cmh +7911 zzdpcnmt.qbf +$ cd lfpm +$ ls +107158 bddslhrg +253844 fzjdz.mlw +217005 glzsnz.cvs +71371 qfccg.crl +193163 sdmmmds.nwt +dir vlnbm +$ cd vlnbm +$ ls +143113 lwhtsvg.bjm +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd jvtlfbzr +$ ls +dir gwz +dir hfftvmw +dir jlftgw +dir nnpvwtvt +98713 wtbzpqvb +$ cd gwz +$ ls +161853 blfnwqtm.vhw +180524 fbqpql.bbw +dir jvrdcf +dir ldcmtwvt +dir pjm +dir qjj +$ cd jvrdcf +$ ls +42681 bddslhrg +dir cbcq +dir fzjdz +dir ghwnd +dir gpbhtj +dir hsmlb +dir mjjj +129934 sdmmmds.nwt +dir wdvqhn +196970 zzdpcnmt.qbf +$ cd cbcq +$ ls +dir hsw +262458 lbhzblh.zfn +dir qbpvrr +205708 sdmmmds.nwt +263842 tqcgmwbj.bcn +4847 vjchlsrc.cmh +72550 wnmpdtrr.zrc +$ cd hsw +$ ls +dir rdvfwbw +$ cd rdvfwbw +$ ls +dir fthdrqnr +$ cd fthdrqnr +$ ls +31974 htnpjdr.wsl +$ cd .. +$ cd .. +$ cd .. +$ cd qbpvrr +$ ls +198987 nnhpdvv.vvn +$ cd .. +$ cd .. +$ cd fzjdz +$ ls +149832 ldb.qnt +183866 nbnzfplj.lrs +$ cd .. +$ cd ghwnd +$ ls +177598 ggchv.tsv +163367 mjjj +13258 pdcf.flm +$ cd .. +$ cd gpbhtj +$ ls +dir cvm +160598 fcng.sbf +272547 ndnlzb +285657 pvs.ldf +166261 sdmmmds.nwt +207433 zzdpcnmt.qbf +$ cd cvm +$ ls +246462 fpwvfs.gpb +133303 vjchlsrc.cmh +$ cd .. +$ cd .. +$ cd hsmlb +$ ls +252425 tqcgmwbj.bcn +$ cd .. +$ cd mjjj +$ ls +96351 fvgj +272667 qfccg.crl +196309 ssv.ljs +$ cd .. +$ cd wdvqhn +$ ls +190200 sdmmmds.nwt +dir tjgfcs +214364 tqcgmwbj.bcn +174218 wqpmmgtd +$ cd tjgfcs +$ ls +dir gngb +268455 hqctmf.cdg +242060 prbwvv +$ cd gngb +$ ls +102313 fhqgpb.cqc +77189 mjjj.cdw +163701 sdmmmds.nwt +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd ldcmtwvt +$ ls +dir bqmbrr +dir cfcfnspz +dir fzjdz +dir gvd +dir mpqtgd +9560 mqfdcz.wqt +75810 shps +249000 tqcgmwbj.bcn +139099 zdv.zgz +dir zpct +$ cd bqmbrr +$ ls +175893 hwrdtwsv.brd +$ cd .. +$ cd cfcfnspz +$ ls +dir gmzsn +dir gvrfbt +105314 mjjj +181873 vjchlsrc.cmh +$ cd gmzsn +$ ls +dir bddslhrg +$ cd bddslhrg +$ ls +dir cspptmpm +258841 fzjdz.bfs +dir npmh +72584 qfccg.crl +$ cd cspptmpm +$ ls +239223 fzjdz +11003 sdmmmds.nwt +73589 tqcgmwbj.bcn +251204 vdz.jcd +$ cd .. +$ cd npmh +$ ls +186878 bddslhrg +264830 bddslhrg.gdq +$ cd .. +$ cd .. +$ cd .. +$ cd gvrfbt +$ ls +200067 zcvjj +$ cd .. +$ cd .. +$ cd fzjdz +$ ls +dir bddslhrg +dir fvqszrj +dir gqcdtjzj +dir pcfr +250120 pqqbpmr +dir qbpvrr +$ cd bddslhrg +$ ls +72852 sjn +$ cd .. +$ cd fvqszrj +$ ls +dir mmzcqr +24439 tqcgmwbj.bcn +dir vhpqjr +$ cd mmzcqr +$ ls +dir gzfqggrr +$ cd gzfqggrr +$ ls +162528 frdgcr.gnb +$ cd .. +$ cd .. +$ cd vhpqjr +$ ls +194144 mjjj +$ cd .. +$ cd .. +$ cd gqcdtjzj +$ ls +231917 pftb +174091 vbzfgtwp +$ cd .. +$ cd pcfr +$ ls +dir dtbws +76624 qfccg.crl +dir qjqjd +dir qjsldd +$ cd dtbws +$ ls +dir vwjnsbjm +$ cd vwjnsbjm +$ ls +56502 mjjj.jqj +130426 qfglmz +23199 vjchlsrc.cmh +$ cd .. +$ cd .. +$ cd qjqjd +$ ls +71015 qfccg.crl +40443 vjchlsrc.cmh +$ cd .. +$ cd qjsldd +$ ls +261945 fzjdz.vcw +$ cd .. +$ cd .. +$ cd qbpvrr +$ ls +138915 fvh.sdp +dir mdvqv +168843 qbpvrr +90599 tchbjclg +226671 vjchlsrc.cmh +$ cd mdvqv +$ ls +159050 bddslhrg +2691 fzjdz +245322 psr +7732 zhnbgcc.lsc +$ cd .. +$ cd .. +$ cd .. +$ cd gvd +$ ls +84112 bhnt.gjg +18231 gzrgd.vvj +dir ntvmrrd +234773 rcfbjzj +281805 sdmmmds.nwt +267837 zzdpcnmt.qbf +$ cd ntvmrrd +$ ls +46209 lwvvwd.rtg +$ cd .. +$ cd .. +$ cd mpqtgd +$ ls +99833 qbpvrr +$ cd .. +$ cd zpct +$ ls +dir bddslhrg +272296 znffshsg.jrt +$ cd bddslhrg +$ ls +81585 vjchlsrc.cmh +$ cd .. +$ cd .. +$ cd .. +$ cd pjm +$ ls +147674 rbctzb +$ cd .. +$ cd qjj +$ ls +21770 wtht.fpd +$ cd .. +$ cd .. +$ cd hfftvmw +$ ls +dir bhvzrsv +130208 cclgndpd +dir fzjdz +39285 jtmcp.pjv +dir mbgvdmpp +dir tchbjclg +202920 vjchlsrc.cmh +$ cd bhvzrsv +$ ls +167049 bts +dir mjjj +257434 qsrpmshg +279724 sdmmmds.nwt +149934 snpb.zwq +254808 tqcgmwbj.bcn +dir wgf +$ cd mjjj +$ ls +dir mrlvp +$ cd mrlvp +$ ls +197237 pmwjbf.lmn +$ cd .. +$ cd .. +$ cd wgf +$ ls +77157 zzdpcnmt.qbf +$ cd .. +$ cd .. +$ cd fzjdz +$ ls +77499 mjjj.pdq +dir shrpdcg +180282 zzdpcnmt.qbf +$ cd shrpdcg +$ ls +22528 bddslhrg +191369 mjjj.llb +35213 sdmmmds.nwt +131772 spfmhdpf.wtr +284434 tpzg.qjg +$ cd .. +$ cd .. +$ cd mbgvdmpp +$ ls +220250 fsdzqhc.ljm +101355 vnrcwb +$ cd .. +$ cd tchbjclg +$ ls +113952 gjbp.qgs +$ cd .. +$ cd .. +$ cd jlftgw +$ ls +dir bddslhrg +210047 cdbch +dir dvrb +266336 fhvwlg +139851 qfccg.crl +dir rcqhb +176510 vjchlsrc.cmh +dir wfrjg +$ cd bddslhrg +$ ls +78175 zzdpcnmt.qbf +$ cd .. +$ cd dvrb +$ ls +216103 fzjdz.blg +$ cd .. +$ cd rcqhb +$ ls +39727 cgfjm.dpt +dir pwb +$ cd pwb +$ ls +39040 sdmmmds.nwt +$ cd .. +$ cd .. +$ cd wfrjg +$ ls +206877 zzdpcnmt.qbf +$ cd .. +$ cd .. +$ cd nnpvwtvt +$ ls +264455 czrjz +dir nfdv +dir nmcp +113232 pffgw.hbv +dir qrzlrt +$ cd nfdv +$ ls +dir fpldng +dir jhj +56720 ltv +170870 rgvs.ggh +$ cd fpldng +$ ls +157283 vzv.qrq +$ cd .. +$ cd jhj +$ ls +172487 qpfh.lpr +$ cd .. +$ cd .. +$ cd nmcp +$ ls +273633 zzdpcnmt.qbf +$ cd .. +$ cd qrzlrt +$ ls +111080 bddslhrg +$ cd .. +$ cd .. +$ cd .. +$ cd qfstpm +$ ls +92950 hjr.zjn +252254 sdmmmds.nwt +$ cd .. +$ cd sbprmc +$ ls +dir bddslhrg +158704 bgnt.vbd +dir cddp +dir cpf +dir hfns +276655 phcccdq +dir qbpvrr +dir srjpcj +55405 vhb.mbj +$ cd bddslhrg +$ ls +238260 mjjj +$ cd .. +$ cd cddp +$ ls +87685 fzjdz.sbz +$ cd .. +$ cd cpf +$ ls +dir tchbjclg +$ cd tchbjclg +$ ls +dir wjcvfvz +$ cd wjcvfvz +$ ls +280711 svmf.czw +$ cd .. +$ cd .. +$ cd .. +$ cd hfns +$ ls +dir bbjnrhf +dir cvjtpc +101075 ddbml.vff +dir gdlqtlv +157960 mswfp.wcj +187182 qddfchn.dpg +59533 rfjvzcq +47332 wszmlq.nbt +$ cd bbjnrhf +$ ls +269590 dgmjpzcz +dir mjjj +84955 mjjj.jqn +dir mwqvvsnt +dir qbpvrr +dir qtdmwqcj +131930 tqcgmwbj.bcn +dir vvwb +$ cd mjjj +$ ls +dir hvvh +$ cd hvvh +$ ls +235980 vmmvp.sbh +$ cd .. +$ cd .. +$ cd mwqvvsnt +$ ls +242698 mjjj.qbm +15137 rncwrgjl.jfr +158528 sdmmmds.nwt +$ cd .. +$ cd qbpvrr +$ ls +dir gpc +$ cd gpc +$ ls +184310 lqfgplfg +$ cd .. +$ cd .. +$ cd qtdmwqcj +$ ls +30238 cfpng.fnl +284340 gst +dir lvcjcglg +82263 twmnlqcq +78023 zzdpcnmt.qbf +$ cd lvcjcglg +$ ls +225027 lsdrg.wqv +$ cd .. +$ cd .. +$ cd vvwb +$ ls +184590 trg.vmc +156231 zzdpcnmt.qbf +$ cd .. +$ cd .. +$ cd cvjtpc +$ ls +dir whqnlc +$ cd whqnlc +$ ls +66362 jnsprdt.vrs +dir tchbjclg +dir zhw +$ cd tchbjclg +$ ls +227846 vqjtc.pld +$ cd .. +$ cd zhw +$ ls +dir bgwcrp +$ cd bgwcrp +$ ls +114175 dftv +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd gdlqtlv +$ ls +121215 gbltpcv.prz +41387 tqcgmwbj.bcn +$ cd .. +$ cd .. +$ cd qbpvrr +$ ls +79921 tqcgmwbj.bcn +263185 vjchlsrc.cmh +$ cd .. +$ cd srjpcj +$ ls +106650 fzjdz.tdf +135245 qfccg.crl +97014 tvlmvqm +$ cd .. +$ cd .. +$ cd svbnljr +$ ls +286919 lwvw.zlr +$ cd .. +$ cd tchbjclg +$ ls +dir bljmjwm +dir hsjww +dir ptfsh +dir qbpvrr +147832 qfccg.crl +$ cd bljmjwm +$ ls +dir cqtmhzbf +dir mfpcdbg +dir qlzg +dir qtdh +dir tbdff +dir tchbjclg +211603 zhr.gwl +$ cd cqtmhzbf +$ ls +dir mmbgqlm +150758 tqcgmwbj.bcn +dir ztcbmbw +$ cd mmbgqlm +$ ls +93439 bddslhrg.gnm +25644 qbpvrr.jhm +$ cd .. +$ cd ztcbmbw +$ ls +dir cmwwg +dir stgmndfd +$ cd cmwwg +$ ls +239158 bfl.pwl +dir dbvnwz +17700 pqtpmpp +dir tchbjclg +$ cd dbvnwz +$ ls +217821 bzgsbc.zzp +$ cd .. +$ cd tchbjclg +$ ls +dir tpdtglwp +52714 vjchlsrc.cmh +111040 zzdpcnmt.qbf +$ cd tpdtglwp +$ ls +287567 jmddscd +$ cd .. +$ cd .. +$ cd .. +$ cd stgmndfd +$ ls +38426 bll.pww +$ cd .. +$ cd .. +$ cd .. +$ cd mfpcdbg +$ ls +dir trjgzcj +$ cd trjgzcj +$ ls +dir hngr +268655 lgrwtch +258843 pbpnjf.tmg +100112 qbh +72784 qbpvrr.cpg +dir vbmqtf +197735 vjchlsrc.cmh +$ cd hngr +$ ls +82873 cwbmqp.llb +261780 hsgwfv.pfn +42859 ljt +dir tchbjclg +$ cd tchbjclg +$ ls +dir fhsgvttf +253131 gtghn +dir nzpcvjhp +dir tpqrqtqj +$ cd fhsgvttf +$ ls +56727 mjjj.vzf +$ cd .. +$ cd nzpcvjhp +$ ls +dir bddslhrg +dir blhrls +$ cd bddslhrg +$ ls +242433 vpvpqtqb.dfr +$ cd .. +$ cd blhrls +$ ls +110313 fzjdz.qtf +$ cd .. +$ cd .. +$ cd tpqrqtqj +$ ls +dir dfjmpvj +114636 gmqqrtv +dir mjjj +175067 wggfznff +$ cd dfjmpvj +$ ls +174485 sjzg +$ cd .. +$ cd mjjj +$ ls +111397 pslm.fjf +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd vbmqtf +$ ls +151429 tchbjclg.tzm +$ cd .. +$ cd .. +$ cd .. +$ cd qlzg +$ ls +127640 bddslhrg.wbj +dir fzjdz +dir ghllcw +62733 qfccg.crl +96986 qwgh +268380 vjchlsrc.cmh +$ cd fzjdz +$ ls +153535 gcjss +$ cd .. +$ cd ghllcw +$ ls +dir fzjdz +dir hwfm +2536 jglh.njg +dir mjjj +dir mlhwcg +200842 qfccg.crl +dir tchbjclg +246542 tqcgmwbj.bcn +dir tqtsl +dir vpn +$ cd fzjdz +$ ls +124920 jzsbrwj +dir wtvfgcrq +$ cd wtvfgcrq +$ ls +dir ltnzjbl +187917 mjjj.svp +dir nvgrzrbr +dir pngcwl +$ cd ltnzjbl +$ ls +151460 jmc.zjf +252590 tchbjclg +$ cd .. +$ cd nvgrzrbr +$ ls +193994 qbpvrr.tsv +152776 tchbjclg.swm +243770 vqzs.hjp +$ cd .. +$ cd pngcwl +$ ls +74603 bddslhrg +288915 vjchlsrc.cmh +$ cd .. +$ cd .. +$ cd .. +$ cd hwfm +$ ls +dir qbpvrr +92630 vjchlsrc.cmh +$ cd qbpvrr +$ ls +dir vlwbhgnv +$ cd vlwbhgnv +$ ls +5248 tchbjclg +$ cd .. +$ cd .. +$ cd .. +$ cd mjjj +$ ls +255751 qfccg.crl +$ cd .. +$ cd mlhwcg +$ ls +115287 pfmch.ncr +$ cd .. +$ cd tchbjclg +$ ls +dir jgrmrzlh +155900 jpljl.fnw +$ cd jgrmrzlh +$ ls +dir mjjj +96116 qbpvrr +270714 tqcgmwbj.bcn +$ cd mjjj +$ ls +59415 dpdgtz +47363 twghmhf.qhf +194434 vbnppl.fws +$ cd .. +$ cd .. +$ cd .. +$ cd tqtsl +$ ls +34243 qqf +131945 qtplsbwd +$ cd .. +$ cd vpn +$ ls +286479 sdmmmds.nwt +$ cd .. +$ cd .. +$ cd .. +$ cd qtdh +$ ls +215668 nhfpn +$ cd .. +$ cd tbdff +$ ls +48347 qfccg.crl +178091 vbsqcnmm +$ cd .. +$ cd tchbjclg +$ ls +dir bddslhrg +dir cwn +251313 hll.ctt +dir qbpvrr +dir scsp +$ cd bddslhrg +$ ls +dir pqtj +185542 qbpvrr +dir tchbjclg +$ cd pqtj +$ ls +141015 jtwpnb.wvf +17260 lgvbns.pvt +$ cd .. +$ cd tchbjclg +$ ls +dir btsmnvn +237149 hhgbtf.zzs +258581 lwvfgbdj.gpp +31561 mjjj +240514 qbwq +90283 qfccg.crl +$ cd btsmnvn +$ ls +dir bddslhrg +dir qbpvrr +$ cd bddslhrg +$ ls +144007 tchbjclg.qql +$ cd .. +$ cd qbpvrr +$ ls +211075 mjjj +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd cwn +$ ls +67908 gldrw +231112 qbpvrr +$ cd .. +$ cd qbpvrr +$ ls +4482 fzjdz.lzr +134244 rnscgpv.tvg +211213 tmvzclz.mjg +107771 wvzs.nns +$ cd .. +$ cd scsp +$ ls +30654 zzdpcnmt.qbf +$ cd .. +$ cd .. +$ cd .. +$ cd hsjww +$ ls +12233 crzr.jrf +dir qbpvrr +$ cd qbpvrr +$ ls +dir bddslhrg +54681 fzjdz.wzv +212670 hpmzrq +dir mcvbjw +138779 nhsdjmjj.szh +dir nllvlzfr +217275 tqcgmwbj.bcn +$ cd bddslhrg +$ ls +261081 lbdqrjjp.ffj +244506 wvn.ttr +55843 zbng.zmm +$ cd .. +$ cd mcvbjw +$ ls +149468 rcvbqhh +$ cd .. +$ cd nllvlzfr +$ ls +162791 rdrhrnzc +$ cd .. +$ cd .. +$ cd .. +$ cd ptfsh +$ ls +163959 bddslhrg.wwb +dir hthjj +dir hwpv +222930 ndvqsfbs.rfb +dir rgrcfr +dir rvrsrfl +95254 tqcgmwbj.bcn +282463 vjchlsrc.cmh +181699 zzdpcnmt.qbf +$ cd hthjj +$ ls +101683 dthb.hwv +112759 mjmdfgl.vdz +191795 whtfg +$ cd .. +$ cd hwpv +$ ls +244334 fzjdz.pgp +$ cd .. +$ cd rgrcfr +$ ls +dir wpslpf +$ cd wpslpf +$ ls +87578 mjjj +$ cd .. +$ cd .. +$ cd rvrsrfl +$ ls +dir qbpvrr +$ cd qbpvrr +$ ls +dir gqv +dir hfg +dir lpbc +dir ppp +16805 snlhrz +29365 wnd.mdj +$ cd gqv +$ ls +229300 tqcgmwbj.bcn +$ cd .. +$ cd hfg +$ ls +1680 hcmmjtbq.wcv +$ cd .. +$ cd lpbc +$ ls +100372 lqf +88156 sddtdz +$ cd .. +$ cd ppp +$ ls +79608 tchbjclg +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd qbpvrr +$ ls +22955 zzdpcnmt.qbf +$ cd .. +$ cd .. +$ cd wtm +$ ls +4584 qfccg.crl +$ cd .. +$ cd ztrz +$ ls +187968 fzjdz.thw \ No newline at end of file